首页 > 其他 > 详细

copy deepcopy辨析

时间:2017-08-20 20:26:46      阅读:201      评论:0      收藏:0      [点我收藏+]
copy deepcopy讲的是复制源对象的改变对copy出来的对象的影响:
我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。
所以改变原有被复制对象不会对已经复制出来的新对象产生影响。 
 
而浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,
所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。这就和我们寻常意义上的复制有所不同了。
 
对于简单的 object,用 shallow copy 和 deep copy 没区别,也就是说copy的对象中没有字典、列表类型的子对象
复杂的 object, 如 list 中套着 list 的情况,shallow copy 中的 子list,并未从原 object 真的「独立」出来。也就是说,
如果你改变原 object 的子 list 中的一个元素,你的 copy 就会跟着一起变。这跟我们直觉上对「复制」的理解不同。
看下面这个例子,就一目了然了
技术分享

copy deepcopy辨析

原文:http://www.cnblogs.com/chandb/p/7401054.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!