
@classmethod 是 Python 中的一个装饰器,用于将方法定义为类方法。类方法的第一个参数通常是 cls,代表类本身,而不是类的实例。这使得类方法可以访问和修改类的状态,例如修改类变量或创建类的实例。类方法常用于需要基于类而不是实例进行操作的场景,如工厂方法、多继承初始化等。
class People:name = '小明'@classmethoddef say_hello(cls):print('同学你好, 我是' + cls.name)print(cls)People.say_hello() # 同学你好, 我是小明<class '__main__.XiaoMing'>
classmethod 依旧是用于类中的方法,这表示这个方法将会是一个类方法
意味着该方法可以直接被调用无需实例化
但同样意味着它没有 self 参数
也无法访问实例化后的对象
相对于 staticmethod 的区别在于它会接收一个指向类本身的 cls 参数。