字典类型的深拷贝
import copy
a = {
“name”:“1”
}
b = copy.deepcopy(a)
print(a,b, a==b)
a[‘name’] = “2”
print(a,b) # {‘name’: ‘2’} {‘name’: ‘1’}
a 的值更改完成之后, b的值还是原来的值。
浅拷贝
两个变量指向的还是同一个关联对象,a的值更改,也会影响b的值;
a = {“name”:[“a”,“b”]}
b = a.copy()
print(a,b, a==b)
更改list中的值
a[‘name’].append(‘c’)
a, b 的值都会收到影响
print(a,b) # {‘name’: [‘a’, ‘b’, ‘c’]} {‘name’: [‘a’, ‘b’, ‘c’]}
深拷贝的内存地址会发生变化,浅拷贝的内存地址不会发生变化
使用场景
如果在自动化项目中需要进行传参,传参的结果放入到 字典的列表中,如果这个值需要copy一份,建议使用 深度copy, 两个变量单独维护,不会相互影响结果。