Python classmethod 修饰符是一种用于定义类方法的装饰器,它可以让一个方法不需要实例化就可以调用,而且可以访问类的属性和方法。Python classmethod 修饰符的作用是可以实现多态,即不同的子类可以有不同的实现方式,也可以实现类的构造函数的重载,即不同的参数可以创建不同的类的实例。
Python classmethod 修饰符的使用方法如下:
- 在定义一个类方法时,在方法的上方加上 @classmethod 装饰器,表示这是一个类方法。
- 在类方法的第一个参数中,传入一个表示类本身的参数,通常命名为 cls ,表示调用当前的类名。
- 在类方法中,可以使用 cls 参数来访问类的属性和方法,也可以使用 cls 参数来创建类的实例对象,相当于调用类的构造函数。
- 在调用一个类方法时,可以直接使用类名.方法名的方式,不需要创建类的实例对象,也不需要传入 self 参数。
Python classmethod 修饰符的使用示例如下:
# 定义一个类
class Person(object):
# 定义一个类属性
count = 0
# 定义一个类方法,用于统计类的实例个数
@classmethod
def how_many(cls):
return cls.count
# 定义一个构造函数,用于创建类的实例对象,并增加类属性的值
def __init__(self, name):
self.name = name
Person.count += 1
# 调用类方法,不需要创建类的实例对象
print(Person.how_many()) # 输出: 0
# 创建两个类的实例对象
p1 = Person('Alice')
p2 = Person('Bob')
# 再次调用类方法,可以看到类属性的值变化了
print(Person.how_many()) # 输出: 2