Python对象的多个所有者

时间:2014-09-24 09:29:37

标签: python

我对一个对象的所有权有轻微的困惑(仍然以Python开头)。我有以下代码:

dict = {}
list = []

for i in [1,2,3]:
    obj = {}
    obj[str(i)] = i
    list.append(obj)
    dict[str(i)] = obj

print dict
print list

for t in list:
    t["s"] = 42

print dict
print list

打印

{'1': {'1': 1}, '3': {'3': 3}, '2': {'2': 2}}
[{'1': 1}, {'2': 2}, {'3': 3}]
{'1': {'1': 1, 's': 42}, '3': {'3': 3, 's': 42}, '2': {'s': 42, '2': 2}}
[{'1': 1, 's': 42}, {'s': 42, '2': 2}, {'3': 3, 's': 42}]

所以我已经"扣除"那个python商店"引用"当对象存储在两个单独的容器中时,对象而不是对象的副本。

这是python处理对象的默认方式吗?在python将对象的副本存储在容器中时,我会遇到什么情况?

0 个答案:

没有答案