浅拷贝:创建新对象,新对象的嵌套对象还是原来的引用,因此修改原对象的嵌套对象,会对新对象产生影响
深拷贝:创建新对象,修改原对象的嵌套对象,不会对新对象产生影响
原对象
dic = {
'data':{
'a': 1
}
}
浅拷贝创建新对象dic_copy
dic_copy = copy.copy(dic)
深拷贝创建新对象dic_deep_copy
dic_deep_copy = copy.deepcopy(dic)
修改原对象嵌套对象
dic['data']['a'] = 2
打印新对象
print(dic_copy)
print(dic_deep_copy)
打印结果
{'data': {'a': 2}}
{'data': {'a': 1}}
浅拷贝新对象受到影响,而深拷贝新对象没有受到影响
修改原对象第一层级数据
dic['data'] = 1
打印新对象
print(dic_copy)
print(dic_deep_copy)
打印结果
{'data': {'a': 1}}
{'data': {'a': 1}}
浅拷贝新对象、深拷贝新对象都没有受到影响