>>> docsite = {'text1':1, 'text2':1}
>>> doc = {
'field1': docsite,
'field2': docsite
}
>>> doc['field2']['text1'] += 2
在此之后,当我打印的文档变量,我得到Python的字典中
>>> doc
{'field2': {'text2': 1, 'text1': 3}, 'field1': {'text2': 1, 'text1': 3}}
我只FIELD2变化值。不知何故,field1中的值也正在更新。
问:
为什么?
如何解决?
该代码将失败,因为'copy'模块未导入。 –
@Andriy Ivaneyko,你是对的。这个答案并不打算提供一个完整的工作代码,它只是强调可变对象是通过引用传递的,也是为什么存在deepcopy。这是否有足够的理由下调?无论如何修复 – jlandercy
你会混淆用户而不指向复制模块,因为它看起来像'deepcopy'是Python的内置方法没有这样的指向... –