我一直试图让我的头在classmethods一段时间。我知道他们是如何工作的,但我不明白为什么要使用它们或不使用它们。为什么要在python中使用类方法实例方法
例如。
我知道我可以用一个实例方法是这样的:
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()
我也知道,通过使用类方法我可以调用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()
我不明白为什么你会选择另一种方法
当你有实例变量时使用实例方法。使用类方法,您不能使用不同的年龄或名称的不同实例 –
请参阅:http://stackoverflow.com/questions/12179271/python-classmethod-and-staticmethod-for-beginner –
您通常不会创建一个班级来代表一个人。通常,您创建一个类Person,并创建它的实例来表示一个人。 – GingerPlusPlus