浅拷贝和深拷贝的区别 - 大白话讲解

2025-10-27 10:07:01

在开发过程中,我们经常有关于对象拷贝的操作,这时候就要面对对象的引用,浅拷贝和深拷贝的选择, 本经验使用python来展现这三种方式的区别

 

工具/原料

python 3

copy

方法/步骤

引用

因为复杂的对象所占用内存空间较大,如果每次操作都额外开辟空间存储相同数据就太过浪费 - 所以默认方式采用引用的方式

两个对象仅仅名称不一样其余一致 - 指向同一块内存空间

浅拷贝和深拷贝的区别 - 大白话讲解

在涉及到浅拷贝或深考呗的选择中 需要引入copy库函数来进行操作

浅拷贝和深拷贝的区别 - 大白话讲解

浅拷贝 - copy.copy()

在python中浅拷贝对对象外层的操作分为两种情况,内层操作均用引用的方式

1. 该对象最外层是可变的 - 例如列表 - 字典

浅拷贝会额外开辟一个内存空间去存放新的对象

浅拷贝和深拷贝的区别 - 大白话讲解

2. 该对象最外层是不可变的 - 例如元组

浅拷贝此时和引用一致

浅拷贝和深拷贝的区别 - 大白话讲解

深拷贝 - copy.deepcopy()

深拷贝是对对象的完全拷贝

但是进一步的节约内存,也十分容易理解,如果外层数据不可变且内层数据不可变就如同引用一样了,因为整个对象都不可变,赋予新的内存毫无意义即使是使用深拷贝的方法

浅拷贝和深拷贝的区别 - 大白话讲解

注意事项

本经验为学习过程的总结,如有错误,欢迎指正,会立即进行更改~

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢