Python的浅复制和深复制

在前文已经看到过了可以使用list函数去复制一个列表,这个就是浅复制,浅复制会构建一个新的对象,并且维护之前对象(子对象)的引用,而深复制则是将之前的子对象通过递归的方式也拷贝出来。从例子中学习吧。

先看看浅复制:

如果给a再增加一个子列表:

这时候b是不受影响的,但是如果给a的子对象,也就是内部的列表[1,2,3],[4,5,6]进行修改,结果就不一样了。

我们修改了a,但是b也受到了影响,因为在浅复制里并不会复制a中的子对象,而只是复制了子对象的引用给了b。但是给a增加子对象并不会影响b。为了避免这样的副作用,就有了深复制。深复制在python的内置模块copy。

这个时候我们修改a,就不会影响b了。

当然这个不仅仅用于copy内置的容器,也用能于copy对象。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180417G1TG2E00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券