类方法是一种在所有对象之间共享的方法。 要调用类方法,请将类作为第一个参数。
可以从实例和类本身中调用类方法。 所有这些都使用相同的方法。 该方法可以使用类变量和方法。
示例
类方法示例
要将方法转换为类方法,请在方法定义之前添加@classmethod
。 该方法始终将类作为参数。
下面的示例定义了一个类方法。 然后,类本身可以使用该类方法。 在此示例中,类方法使用类属性名称。
class Fruit:
name = 'Fruitas'
@classmethod
def printName(cls):
print('The name is:', cls.name)
Fruit.printName()
您可以同时使用对象和类的类方法:
apple = Fruit()
berry = Fruit()
Fruit.printName()
apple.printName()
berry.printName()
现在,参数名称属于该类,如果您要通过使用对象来更改名称,它将忽略该参数。 但是,如果您要按班级进行操作,则它会更改,例如以下示例:
apple.name="Apple"
Fruit.printName()
apple.printName()
berry.printName()
Fruit.name="Apple"
Fruit.printName()
apple.printName()
berry.printName()
替代表示法
通常使用 pythonic 表示法,但这并不是严格要求的。
您也可以使用这样的类方法:
class Fruit:
name = 'Fruitas'
def printName(cls):
print('The name is:', cls.name)
Fruit.printAge = classmethod(Fruit.printName)
Fruit.printAge()
类方法与静态方法
类似于静态方法,类方法不需要实例化对象。
类方法与静态方法的不同之处在于,静态方法不了解类本身。 在类方法中,参数始终是类本身。
静态方法对类或实例一无所知。 您也可以使用函数调用。
类方法在调用该方法时获取该类。 它了解类的属性和方法。
练习
类方法文章的练习:
- 什么是类方法?
- 类方法与静态方法有何不同?