码迷,mamicode.com
首页 > 其他好文 > 详细

类方法@classmethod

时间:2018-08-24 23:40:46      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:def   属性   因此   函数   结果   类型   输出   return   ret   

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

标签:def   属性   因此   函数   结果   类型   输出   return   ret   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!