类方法@classmethod

类方法 @classmethod
类方法是用于描述类的行为的方法,类方法属于类,不属于类的实例

说明:
  类方法需要使用@classmethod装饰器定义
  类方法至少有一个形参,第一个形参用于绑定类,约定写为'cls'
  类和该类的实例都可以调用类方法

  类方法不能访问此类创建的实例的属性
  

class A:
    v = 0   # 类变量(类属性)

    @classmethod     
    def get_v(cls):    #如果是类方法,那么函数的第一个参数一定是cls,因此cls.变量名,就可以调用类变量
        return cls.v     # 用cls访问变量v

    @classmethod
    def set_v(cls, x):
        cls.v = x

print("A.v = ", A.get_v())  #调用类方法得到类变量的值
A.set_v(100)

print("A.v = ", A.get_v())

a = A()   #a绑定A类型的一个实例对象
print(a.get_v())   #此类的实例也可以用该类方法   a.__class__传给cls


输出结果:
tarena@tedu:~/zengsf$ python3 exercise824.py
A.v =  0
A.v =  100
100
原文地址:https://www.cnblogs.com/zengsf/p/9532303.html