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

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

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

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

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

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

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

 

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

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

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

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

 

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

 

posted on 2020-04-12 12:29  乐呵的太阳  阅读(132)  评论(0编辑  收藏  举报