我有这个代码
class Person(object):
def __init__(self, name):
self.name = name
@classmethod
def from_classmethod(cls, name):
return cls(name)
p = Person.from_classmethod("Moctar")
p.name
但是它显示以下错误:
AttributeError: 'Person' object has no attribute 'name'
这里可能出什么问题,还是我错误地使用了python @classmethod功能?
答案 0 :(得分:0)
正如@furas所说,我认为您想要的是:
class Person(object):
def __init__(self, name):
self.name = name
@classmethod
def from_classmethod(cls, name):
return cls(name)
p = Person.from_classmethod("Moctar")
print(p.name)
结果:
Moctar
对self.name
的分配会在您要创建的Person实例上创建该属性。