Python(四):引用,浅拷贝,深拷贝

1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
2. copy.deepcopy 深拷贝 拷贝对象及其子对象
 
import copy
obj = [1, 2, 3, 4, ['a', 'b']] #原始对象
 
cite = obj #赋值,传对象的引用
shallow = copy.copy(obj) #对象拷贝,浅拷贝
deep = copy.deepcopy(obj) #对象拷贝,深拷贝
 
obj.append(5) #修改对象obj
obj[4].append('c') #修改对象obj中的['a', 'b']数组对象
 
输出结果:
obj =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
cite =  [1, 2, 3, 4, ['a', 'b', 'c'], 5]
 
浅拷贝和深拷贝都不会受到添加对象的影响,因为父对象被新实例化,没有之前的引用
但浅拷贝内部的子对象仍然是引用,所以也被改变
shallow =  [1, 2, 3, 4, ['a', 'b', 'c']]
deep =  [1, 2, 3, 4, ['a', 'b']]
 
可以直接留言交流问题或想法,每天都会看
原文地址:https://www.cnblogs.com/shitianfang/p/12383717.html