Python 中的 classmethod()


类方法接收类本身作为其第一个参数。这样我们就可以在不先从类中创建实例的情况下在类中调用方法。我们只需在类中包含的方法声明前使用装饰器 @classmethod,然后就可以直接访问该方法。以下是 classmethids 的主要特征。

  • 类方法绑定到类,不依赖于类实例化的使用。

  • 类方法可以修改类,然后传播到类的所有实例。

使用 classmethod

在下面的示例中,我们创建了一个名为 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']

不使用 classmethod

若不使用类方法,可通过申明无类的对象来实现相同结果。这是我们需要类方法的原因。

示例

def daynames():
   day_name = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
   print('The WeekDays are', day_name)

daynames()

输出

运行以上代码会得到以下结果 -

The WeekDays are ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

更新时间:2019-10-17

402 查看

开启你的职业生涯

完成课程后获取认证

开始
广告
© . All rights reserved.