深浅COPY浅谈
作者:互联网
通俗地谈一下深浅COPY的区别,顺便做个笔记。(纯手打,如有不对之处还望大牛指导改正。)
个人觉得区分这个概念需要从数据类型来切入:
1.如果“被复制对象”(后面简称“原对象”)的数据类型为不可变数据类型(int,str等):
这种情况的深、浅COPY没有任何差别。
2.如果原对象的数据类型为可变的数据类型(list,dict,set等):
1>浅COPY会复制一个新的父级(可以理解为存储数据的外壳),而外壳里面的元素是共用“原对象”的元素。
属性呈现:“原对象”元素的改变会让COPY来的数据发生改变。
2>深COPY不仅会复制一个新的外壳,连“原对象”里面的元素也会复制一个个新的元素(但是不可变数据类型的元素除外,也就是不可变数据类型的元素还是延用“原对象”的内存地址)
属性呈现:“原对象”元素的改变不会让COPY来的数据发生改变,他们是两个独立的个体。
标签:浅谈,对象,外壳,元素,数据类型,复制,深浅,COPY 来源: https://www.cnblogs.com/summer10021725/p/12369734.html