静态方法是普通方法放了类内,那么,为什么要把普通方法放在类内来呢?它和类外的普通函数之间有什么区别?
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() #外部方法,通过类名调用类中的数据,不可访问私有数据
#静态方法,其实就是普通方法写在类内,可以访问类的私有变量,所以如果当一个普通方法需要访问类的私有变量的时候,需要写成类的静态方法
#保护变量,即单下划线开头的变量,静态和外部函数可正常访问