我一直在努力理解classmethods。我知道它们的工作原理,但我不明白为什么要使用它们或不使用它们。
例如:
我知道我可以像这样使用实例方法:
class MyClass():
def __init__(self):
self.name = 'Chris'
self.age = 27
def who_are_you(self):
print('Hello {}, you are {} years old'.format(self.name, self.age))
c = MyClass()
c.who_are_you()
我也知道通过使用classmethod,我可以在不创建类的实例的情况下调用who_are_you()方法:
class MyClass():
name = 'Chris'
age = 27
@classmethod
def who_are_you(cls):
print('Hello {}, you are {} years old'.format(cls.name, cls.age))
MyClass.who_are_you()
我不明白为什么你会选择其中一种方法而不是另一种
Person
的类,并创建其实例来表示一个人。 - GingerPlusPlus