Как использовать методы класса в Python? - PullRequest
0 голосов
/ 19 мая 2019

У меня есть этот код

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 голосов
/ 19 мая 2019

Как говорит @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, который вы создаете.

...