>> b =-6ren">
gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:25:53 25 4
gpt4 key购买 nike

对于类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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com