1
予期せぬ問題が発生しています。これは単純化されたコードです:exec()のプライベートクラス関数を呼び出します。python
class test():
def __init__(self,name):
self.name = name
def __private(self):
print(self.name)
def public(self):
exec("self.__private()")
obj = test('John')
obj.public()
誰もが、私はexec文を取り除くことなく、このコードを動作させることができる方法を知っていますか?
これはプライベートメソッドではありません。 Pythonには "private"というものはありません。 –
@Ignacio Vazquez-Abrams obj .__ private()のように呼び出すと、最も近いものがプライベート関数にアクセスできます。 – Daan
プライベートなものではありません。物事を非公開にすることは意図されていません。複数の継承を使用する場合、属性名の競合を防ぐためです。 –