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

时间:2026-02-11 23:14:22

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


工具/原料

python 3

copy

方法/步骤

引用

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

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

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

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

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

浅拷贝 - copy.copy()

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

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

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

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

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

浅拷贝此时和引用一致

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

深拷贝 - copy.deepcopy()

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

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

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

注意事项

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

© 2026 途途旅游
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com