Skip to main content
 首页 » 编程设计

python之为什么python关联映射成员变量在对象之间共享

2025年05月04日10小虾米

对于类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 = {}