python中的静态方法和普通方法

静态方法是普通方法放了类内,那么,为什么要把普通方法放在类内来呢?它和类外的普通函数之间有什么区别?

class demo:
    __a = 100 #类的私有变量
    _b = 50
    c = 10

    def in_out(self):
        print("value about _a is: ", self.__a)
        print("value about _b is: ", self._b)
        print("value about _b is: ", self.c)

    @classmethod
    def class_out(cls):
        print("value about _a is: ", cls.__a)
        print("value about _b is: ", cls._b)
        print("value about _b is: ", cls.c)

    @staticmethod
    def out():
        print("value about _a is: ", demo.__a)  #静态方法,可以访问类私有变量__a
        print("value about _b is: ", demo._b)
        print("value about _b is: ", demo.c)

def other_out():
    # print("value about _a is: ", demo.__a)  #外部方法不可访问类私有变量__a
    print("value about _b is: ", demo._b)
    print("value about _b is: ", demo.c)

# cc = demo()
# cc.in_out()  #实例方法,通过self调用类中的数据,可访问所有类数据

# demo.class_out() #类方法,通过cls调用类中的数据,可访问所有类数据

# demo.out() #静态方法,通过类名调用类中的数据,可访问所有数据

other_out() #外部方法,通过类名调用类中的数据,不可访问私有数据

#静态方法,其实就是普通方法写在类内,可以访问类的私有变量,所以如果当一个普通方法需要访问类的私有变量的时候,需要写成类的静态方法
#保护变量,即单下划线开头的变量,静态和外部函数可正常访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值