Скажем, у меня есть этот код:
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()
не вернул значение по умолчанию_value, но указатель (?) на него.
Проблема может быть решена путем изменения кода на:
item = my_dict.get('john', {'surname': '', 'age': 0})
но это не похоже на хороший способ сделать это. Любые идеи, комментарии?