标签:print val init python类 保存 elf 成员 object 类变量
class TestClass(object):
val1 = 100 #类变量
def __init__(self):
self.val2 = 200 #成员变量
def fcn(self, val=400):
val3 = 300 #局部变量
self.val4 = val
self.val5 = 500
inst1 = TestClass()
inst2 = TestClass()
print TestClass.val1 # 100
print inst1.val1 # 100
inst1.val1 = 1000
print inst1.val1 # 1000
print TestClass.val1 # 100
TestClass.val1 =2000
print inst1.val1 # 1000
print TestClass.val1 # 2000
print inst2.val1 # 2000
inst3 = TestClass()
print inst3.val1 # 2000
类本身拥有自己的类变量(保存在内存),当一个TestClass类的对象被构造时,会将当前类变量拷贝一份给这个对象,当前类变量的值是多少,这个对象拷贝得到的类变量的值就是多少;
通过对象来修改类变量,并不会影响其他对象的类变量的值,更不会影响类本身所拥有的那个类变量的值;
只有类自己才能改变类本身拥有的类变量的值
标签:print val init python类 保存 elf 成员 object 类变量
原文地址:http://www.cnblogs.com/EmptyRabbit/p/7679655.html