Python 中的 @staticmethod和@classmethod(关键词:Python/静态方法/类方法/@staticmethod/@classmethod)

结合书籍,我的理解
静态方法: 出现在类中,第 1 个参数不是实例、也不是类, 由 @staticmethod 装饰的方法;
类方法: 出现在类中,第 1 个参数不是实例、而是类, 由 @classmethod 装饰的方法。

class C:
        @staticmethod
        def smeth(x):
                print(x)

        @classmethod
        def cmeth(cls, x):
                print(cls, x)

输出:

>>> c1 = C()
>>> c1.smeth(1)
1
>>> C.smeth(2)
2
>>> c1.cmeth(1)
<class 'q.C'> 1
>>> C.cmeth(1)
<class 'q.C'> 1

参考文献:

  1. 《Python 学习手册(第 4 版)》 - ;
  2. 3 @staticmethod和@classmethod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值