Python中的classmethod()
类方法将类本身作为其第一个参数。这样,我们可以在类中调用方法,而无需先从类中创建实例。我们只需要在类中包含的方法声明之前使用装饰器@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']