클래스 Foo
을 반 복하지 않고 __init__
에서 classmethod addInstances
을 호출하고 싶습니다.클래스 이름을 반복하지 않고 __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