对于类A,为什么对象和对象b共享aMap成员变量?
>>> class A:
... aMap = {}
>>> a = A()
>>> a.aMap["hello"] = 1
>>> b = A()
>>> b.aMap["world"] = 2
>>> c = []
>>> c.append(a)
>>> c.append(b)
>>> for i in c:
... for j in i.aMap.items():
... print j
('world', 2)
('hello', 1)
('world', 2)
('hello', 1)
最佳答案
因为您将其定义为类属性,而不是实例属性。
如果你希望它作为实例属性而不是在实例之间共享,你必须这样定义它:
class A(object):
def __init__(self):
self.aMap = {}
关于python - 为什么python关联映射成员变量在对象之间共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299801/