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

本文深入探讨了Python中类方法和静态方法的区别与用法。解析了它们如何被类和实例访问,以及与普通函数和实例方法之间的差异。通过具体代码示例,清晰展示了不同方法的调用方式及限制。
#类方法能访问类属性,静态方法不能访问类属性
#https://www.cnblogs.com/jayliu/p/9030725.html

class A(object):


    @classmethod  # 加上这句后 classKkk就成为了类方法,类和实例都可以访问,但是类访问
    def classKkk(cls, x):
        print(cls, x)

    @staticmethod  # 加上这句就成为了静态方法,类和实例都可以访问。
    def staticKkk(x):
        print(x)

    def mmm(x):  # 这是无敌普通函数
        print(x)

    def kkk(self, x):  # 实例方法,实例能访问
        print(self, x)


A.classKkk(2)#   <class '__main__.A'> 2 这里类A可以直接访问类方法classKkk,但是不能访问实例方法kkk(会报错的)。
# A.staticKkk(3)  # 3 这里类A也可以访问静态方法staticKkk,
# A.kkk(A, 1)  # <class '__main__.A'> 1 类要访问实例方法需要加入参数,至于这个参数可以是A也可以是A()
# A.mmm(3)  # 3 对象可以访问无敌普通函数
# a = A()

# a.classKkk(6)  # <class '__main__.A'> 6 实例访问类方法,没毛病
# a.staticKkk(7)  # 7
# a.kkk(5)  # <__main__.A object at 0x0000028A64394CC0> 5 实例访问实例方法,没毛病
# a.mmm(7)  # 报错,实例不能访问普通函数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值