python(3)-深浅拷贝
import copy
copy.copy() 浅拷贝
copy.deepcopy() 深拷贝
>>> import copy >>> a1 = 123 >>> a2 = a1 >>> a3 = copy.copy(a1) >>> a4 = copy.deepcopy(a1) >>> print(id(a1),id(a2),id(a3),id(a4)) 1967314832 1967314832 1967314832 1967314832
再看一个例子
>>> n1 = { "k1":"wu","k2":123, "k3":["abc",456]} >>> n2 = n1 >>> n3 = copy.copy(n1) >>> n4 = copy.deepcopy(n1)
深浅拷贝示意图
浅拷贝只拷贝一层, 深拷贝有多少层拷多少层.
如果是只读对象,那么可以用浅拷贝快速生成.
但如果是需要各自做不同修改的,则需要用深拷贝.