3

Python でプライベートおよび保護されたアクセス指定子をシミュレートできますか?

名前マングリング

例えば:

__var=10

プライベートをシミュレートできますが、オブジェクトを介して外部から簡単にアクセスできます。

object._className__var

それで、私たちが知らない解決策を直接シミュレートしたり、Pythonで解決したりする方法はありますか?

4

1 に答える 1

6

Python には、慣れ親しんだ他の言語のような必須のアクセス制御はありません。この言語の哲学は、「私たちは皆、同意する大人です」です。

慣例により、プライベート属性にはアンダースコアがプレフィックスとして付けられます。これは、それらを直接使用してはならないことを示すヒントです。しかし、それは単なる慣習です。Python をサンドボックス化する場合は、別のプロセスで実行する必要があります。

二重アンダースコア マングリングの目的は、偶発的な名前の衝突を防ぐことであり、アクセス制御を強制することではありません。

于 2013-06-22T02:50:39.143 に答える