原文链接: python 成员变量和类变量的区别
上一篇: opencv 和scipy misc 模块 图像resize 速度比较 timeit 模块使用
下一篇: python 捕获 warning
踩了一个大坑!
类变量
每个对象所拥有的是同一个对象!
在一个对象中修改,会改变其他对象中的值!!!!!!!!!!!!!!!
class Cat:
def __init__(self, name):
self.name = name
class Env:
c = Cat('cat')
env1 = Env()
env2 = Env()
print(id(env1.c)) # 1816080216920
print(id(env2.c)) # 1816080216920
print(id(env1.c) == id(env2.c)) # True
成员变量
每个对象单独拥有自己的对象
每个对象只能修改自己拥有的对象的值,不会影响其他对象中的值
class Cat:
def __init__(self, name):
self.name = name
class Env:
def __init__(self):
self.c = Cat('cat')
env1 = Env()
env2 = Env()
print(id(env1.c)) # 2188207648896
print(id(env2.c)) # 2188207649008
print(id(env1.c) == id(env2.c)) # False