python类方法、静态方法、和实例方法

先看个简单代码

class CText:
    a = 2  # 类属性
    # 实例方法

    def normal_method(self):
        return self.a
    # 静态方法

    @staticmethod
    def static_method(a):
        return a   # 无法访问上面的a(即类属性)

    # 类方法

    @classmethod
    def class_method(cls):
        return cls.a


if __name__ == '__main__':
    ctext = CText()  # 类的实例化
    print(ctext.normal_method())  # 类的实例方法通过实例调用
    print(ctext.static_method(3))  # 类的静态方法通过实例调用
    print(ctext.class_method())  # 类的类方法通过实例调用

    ctext.a = 5   # 改变类属性
    print(ctext.normal_method())  # 类的实例方法通过实例调用
    print(CText.static_method(3))  # 类的静态方法通过类调用
    print(CText.class_method())  # 类的类方法通过类调用

结果:

2
3
2
5
3
2
*

结论

实例方法:1,只能通过实例来调用 2,相应的类属性随着实例的改变而改变
静态方法:1,可以通过实例调用也可以通过类直接调用 2,无法访问类属性
类方法:1,可以通过实例调用也可以通过类直接调用 2,可以访问类属性,且类属性不随实例的改变而改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值