浅拷贝和深拷贝的区别 - 大白话讲解
在开发过程中,我们经常有关于对象拷贝的操作,这时候就要面对对象的引用,浅拷贝和深拷贝的选择, 本经验使用python来展现这三种方式的区别
工具/原料
python 3
copy
方法/步骤
引用
因为复杂的对象所占用内存空间较大,如果每次操作都额外开辟空间存储相同数据就太过浪费 - 所以默认方式采用引用的方式
两个对象仅仅名称不一样其余一致 - 指向同一块内存空间

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

浅拷贝 - copy.copy()
在python中浅拷贝对对象外层的操作分为两种情况,内层操作均用引用的方式
1. 该对象最外层是可变的 - 例如列表 - 字典
浅拷贝会额外开辟一个内存空间去存放新的对象

2. 该对象最外层是不可变的 - 例如元组
浅拷贝此时和引用一致

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

注意事项
本经验为学习过程的总结,如有错误,欢迎指正,会立即进行更改~
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:20
阅读量:173
阅读量:56
阅读量:97
阅读量:46