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']