class ClassOut:
out_mem = 'out_mem'
def __init__(self):
inner_mem = 'inner_mem'
self.inner_mem = 'self.inner_mem'
self._inner_mem = 'self._inner_mem'
#self.out_mem = 'self.out_mem'
print(inner_mem)
print(self.out_mem)
def test(self):
self.out_mem = "test_mem"
ClassOut.out_mem = "test"
self.a_mem = "a_mem"
print(self.out_mem)
if __name__=="__main__":
a = ClassOut()
b = ClassOut()
a.test()
print(ClassOut.out_mem)
print(a.out_mem)
print(b.out_mem)
结果:
inner_mem
out_mem
inner_mem
out_mem
test_mem
test
test_mem
test
总结:
python的类变量定义在类里面,由class_name.global_var_name来使用,也可通过对象self.global_var_name来调用,
在初始化实例的时候,每个对象拥有类变量的一份引用,当改变类变量时,所有对象将得到类变量的改变值
类的实例变量由self.var_name来定义,在类的任何函数可定义,什么时候定义,什么时候才存在,若类的实例变量和类变量
重名,则通过self.global_var_name调用的是类的实例变量