类方法@classmethod

本文深入讲解Python中类方法的概念及应用。通过实例演示如何使用@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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值