クラス名Foo
を繰り返さずに、クラスメソッドaddInstances
を__init__
から呼び出したいと思います。クラス名を繰り返さずに__init__からclassmethodを呼び出してください
class Foo():
myInstances = {}
@classmethod
def addInstance(cls, name, obj):
cls.myInstances[name]=obj
def __init__(self, name):
Foo.addInstance(name, self) # class name "Foo" is repeated
#use the class
if __name__ == "__main__":
Foo('testName')
print(Foo.myInstances)
上記のコードは、私が期待していることです。ただし、 "Foo
"が繰り返されます。
cls.addInstance(name, self)
でライン
Foo.addInstance(name, self) # class name "Foo" is repeated
の交換はNameError: name 'cls' is not defined
につながります。
を書くことができますが、 'という' self.addInstances(..) ' – Vinny