私はあなたのほとんどがそのままであることを知っていますexecは使用しないでください。ここで'exec'はプライベートメソッドPythonでは動作しません
は働く、最小限の例です。
class A:
def __init__(self):
exec('self.a = self.funct()')
def funct(self):
return 1
def ret(self):
return self.a
> obj = A()
> obj.ret()
1
しかし、ときに私はない:その差がある理由
class A:
def __init__(self):
exec('self.a = self.__funct()')
def __funct(self):
return 1
def ret(self):
return self.a
> obj = A()
AttributeError: 'A' has no attribute '__funct'
誰もが知っていますか?
'__'名は** class ** privateです。それは他の言語のプライバシーモデルと同じではありません。 –