首页 > 其他 > 详细

类方法@classmethod

时间:2018-08-24 23:12:04      阅读:184      评论:0      收藏:0      [点我收藏+]

类方法 @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

 

类方法@classmethod

原文:https://www.cnblogs.com/zengsf/p/9532303.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!