Python クラスにおけるプライバシーの性質
Java では、アクセス修飾子の概念は、クラス内の変数の可視性を制御するための基本です。ただし、Python は別のアプローチを提供します。
Bruce Eckels が観察しているように、Python はインスタンス変数を正式に宣言しません。代わりに、コンストラクター内で使用される変数は暗黙的に作成されます。ここで疑問が生じます。なぜ Python にはプライベート変数が必要ないように見えるのですか?
Java のアクセス修飾子 (public、private、protected) は、一定レベルのカプセル化を導入し、内部クラス変数が外部コードに公開されるのを制限します。ただし、Python では、この変数の可視性の明示的な宣言は不要であると考えられています。
Python の哲学は、プログラマの責任感を奨励します。慣例として、他のクラスのインスタンス変数またはクラス変数を操作しないでください。これらへのアクセスは技術的には可能ですが、それは言語で受け入れられている慣行に反します。
プライベート変数の概念をエミュレートするために、Python は (PEP 8 に従って) __ プレフィックスを介したメカニズムを提供します。これにより変数名にプレフィックスが付けられ、クラス名前空間内で変数名が実質的に破壊され、外部コードから見えにくくなります。ただし、この保護は絶対確実というわけではなく、決意したユーザーでも回避できる可能性があります。
さらに、_ プレフィックスは、クラスまたはモジュール内での内部使用を目的とした変数に使用されます。外部からのアクセスは技術的に制限されていませんが、スコープ外のコードで操作すべきではないことを意味します。
以上がPython は明示的なアクセス修飾子のないクラスでプライバシーをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。