首页 > 其他 > 详细

深拷贝、浅拷贝

时间:2020-04-12 13:03:17      阅读:59      评论:0      收藏:0      [点我收藏+]

直接复制:直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变

浅拷贝:copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变

深拷贝:深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变

为什么python默认的是浅拷贝?

时间角度:浅拷贝花费时间更少

空间角度:浅拷贝花费内存更少

效率角度:浅拷贝只拷贝顶层数据,一般情况下比深拷贝效率更好。

 

python中构造的任何数据都是对象,对象都有三个属性:type、id、value;

python按照更新对象的方式,分为可变对象与不可变对象。

可变对象:列表、字典、集合

不可变对象:数字、字符串、元祖。不可变对象指的是id和value都不可变。

 

引用:对象的别名。在python中,每个对象都会开辟一块空间来存储该对象。在使用该对象时候,只要知道该对象的地址,就可以对该对象进行操作。因为地址的数字地址不方便记忆,就使用变量名的形式来代替对象的数字地址。在python中,变量就是地址的一种表示形式,并不开辟存储空间。

 

深拷贝、浅拷贝

原文:https://www.cnblogs.com/happytaiyang/p/12684623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!