当前位置: 代码迷 >> 综合 >> python学习之 《编写高质量代码---改善Python程序的91个建议》之建议38 使用copy模块深拷贝对象
  详细解决方案

python学习之 《编写高质量代码---改善Python程序的91个建议》之建议38 使用copy模块深拷贝对象

热度:26   发布时间:2024-02-07 12:17:31.0

浅拷贝:构造一个新的复合对象,并将从原对象中发现的引用插入该对象中,浅拷贝的实现方式有多种,如工厂函数,切片操作,copy模块中的copy操作等;

深拷贝:也构造一个新的复合对象,但是遇到引用会继续递归拷贝其所指向的具体内容,也就是说它会针对引用所指向的对象继续执行拷贝,因此产生的对象不受其他引用对象操作的影响,深拷贝的实现需要依赖copy模块的deepcopy()操作。

class A

A a 

b = copy.copy(a)

修改b中成员变量

print(a)

会发现a中也修改了,a=b

浅拷贝之拷贝了地址,并未拷贝其中内容,当重新赋值的时候,就覆盖掉了a中原来的值

copy.deepcopy()拷贝了地址和对象内容,不再影响原对象的值

 

  相关解决方案