如何在python中使用类方法?

时间:2019-05-19 00:06:14

标签: python attributeerror class-method

我有这个代码

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功能?

1 个答案:

答案 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实例上创建该属性。