课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Python编程开发语言是目前大多数软件开发程序员都在学习的一个编程开发语言,而本文我们就通过案例分析来了解一下,Python编程浅拷贝与深拷贝的区别。
浅拷贝
浅拷贝:拷贝了外围的对象本身,内部的元素都只是拷贝了一个引用而已。也就是,把对象复制一遍,但是该对象中引用的其他对象我不复制。
用通俗的话理解就是:你的橱柜(对象)里装着一?(篮子)?(鸡蛋),然后浅拷贝一下的意思。我只拷贝了外面的这个橱柜,至于里面的内部元素(?和?)我并不拷贝。
深拷贝
深拷贝:外围和内部元素都进行了拷贝对象本身,而不是引用。也就是,把对象复制一遍,并且该对象中引用的其他对象我也复制。
对比上面的篮子和鸡蛋:你的橱柜(对象)里装着一?(篮子)?(鸡蛋),然后深拷贝一下的意思。把外面的这个橱柜和里面的内部元素(?和?)全部拷贝过来。
拷贝的特点
不可变类型的对象
(如数字、字符串、和其他'原子'类型的对象)对于深浅拷贝毫无影响,终的地址值和值都是相等的。也就是,"objiscopy.copy(obj)"、"objiscopy.deepcopy(obj)"
可变类型的对象
=浅拷贝:值相等,地址相等
copy浅拷贝:值相等,地址不相等
deepcopy深拷贝:值相等,地址不相等
循环引用的对象
如果对象有循环引用,那么这个朴素的算法会进入无限循环。deepcopy函数会记住已经复制的对象,因此能优雅地处理循环引用。
深浅拷贝的作用
减少内存的使用
以后在做数据的清洗、修改或者入库的时候,对原数据进行复制一份,以防数据修改之后,找不到原数据。
可以定制复制行为,通过实现__copy()和__deep__()方法来控制。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。