类方法将类本身作为其第一个参数。这样,我们可以在类中调用方法,而无需先从类中创建实例。我们只需要在类中包含的方法声明之前使用装饰器@classmethod,然后我们就可以直接访问该方法。以下是classmethids的主要功能。类方法绑定到类,并且不依赖于要使用的类的实例化。
一个类方法可以修改一个类,该类又传播到该类的所有实例。
使用类方法
在下面的示例中,我们创建一个名为WeekDay的类,并在其中创建一个名为daynames的方法。然后,我们无需首先实例化类就访问该方法,这意味着无需从类中创建任何对象。
示例class WeekDay:
day_name = ['Mon','Tue','Wed','Thu','Fri']
# Applying the class method
@classmethod
def daynames(n):
print('The WeekDays are', n.day_name)
WeekDay.daynames()
# OR
WeekDay().daynames()
输出结果
运行上面的代码给我们以下结果-The WeekDays are ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
The WeekDays are ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
不使用类方法
为了获得没有类方法的相同结果,我们可以声明没有类的方法。这说明了我们需要class方法的原因。
示例def daynames():
day_name = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
print('The WeekDays are', day_name)
daynames()
输出结果
运行上面的代码给我们以下结果-The WeekDays are ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']