Python
では、__method()
と定義されたプライベートメソッドは、実際には厳密にプライベートではありません。Python
の設計哲学は、完全なカプセル化を目的とするのではなく、開発者間の信頼を前提としています。このため、プライベートメソッドは名前マングリングによって外部から意図的にアクセスできます。これは、クラス階層で名前の衝突を避けるための措置です。
例えば、次のようにアクセスできます。
obj._ClassName__method()
この特性は、カプセル化よりもデバッグや柔軟性を重視したPython
の設計思想に基づいています。