初学python,遇到个不解的问题,求教大神们,多谢了!!!
class T:
d = {}
if __name__ == "__main__":
t1 = T()
t2 = T()
t1.d["a"] = 1
t2.d["b"] = 2
print t1.d
print t2.d
以上代码的输出如下:
{'a': 1, 'b': 2}
{'a': 1, 'b': 2}
为什么2个对象的成员会共享?应该怎么解决?
我的目标是打印出
{'a': 1}
{'b': 2}
不了解你的需求,既然是类成员变量,又要和实例绑定?
类变量是所有实例共享的,实例变量才属于实例
class T:
def __init__(self):
self.d = {}
if __name__ == "__main__":
t1 = T()
t2 = T()
t1.d["a"] = 1
t2.d["b"] = 2
print t1.d
print t2.d