【发布时间】:2011-11-01 12:07:42
【问题描述】:
假设我有这个代码:
my_dict = {}
default_value = {'surname': '', 'age': 0}
# get info about john, or a default dict
item = my_dict.get('john', default_value)
# edit the data
item[surname] = 'smith'
item[age] = 68
my_dict['john'] = item
如果我们现在检查 default_value 的值,问题就很清楚了:
>>> default_value
{'age': 68, 'surname': 'smith'}
很明显,my_dict.get() 并没有返回 default_value 的 value,而是一个指向它的指针 (?)。
可以通过将代码更改为:
item = my_dict.get('john', {'surname': '', 'age': 0})
但这似乎不是一个好方法。有什么想法吗,cmets?
【问题讨论】:
标签: python dictionary pass-by-reference