12
Pythonの「プライベート」メソッドが実際にはプライベートではないのはなぜですか?
Pythonでは、次のように、名前の前に2つのアンダースコアを付けることで、クラス内に「プライベート」メソッドと変数を作成できます__myPrivateMethod()。それでは、これをどのように説明できますか >>> class MyClass: ... def myPublicMethod(self): ... print 'public method' ... def __myPrivateMethod(self): ... print 'this is private!!' ... >>> obj = MyClass() >>> obj.myPublicMethod() public method >>> obj.__myPrivateMethod() Traceback (most recent call last): File "", line 1, in AttributeError: MyClass instance has no attribute '__myPrivateMethod' >>> dir(obj) ['_MyClass__myPrivateMethod', …