python深拷贝和浅拷贝的区别

什么是深拷贝?

python语法:copy.deepcopy()
解释:深拷贝就是复制一个完全一模一样的出来,本体不会因为这个克隆体发生的改变而改变,简单的说就是复制之后他们就毫无关联了!!

什么是浅拷贝?

python语法:copy.copy()
解释:掐拷贝就是简单的复制一下外层,内层所以里面一层的id是指向同一个地址的(如果被拷贝的里面一层的值变了,拷贝的对象也会跟着改变,反之也一样)
举个栗子:a = [1,2,3[5,6]]
a里面的[5,6]列表就是内层的对象,浅拷贝完之后他们的id还是同一个。

总结

换一种说法:

深拷贝就是完全跟以前就没有任何关系了,原来的对象怎么改都不会影响当前对象

浅拷贝,原对象的list元素改变的话会改变当前对象,如果当前对象中list元素改变了,也同样会影响原对象。

浅拷贝就是藕断丝连

深拷贝就是离婚了

通常复制的时候要用深拷贝,因为浅拷贝后,两个对象中不可变对象指向不同地址,相互不会改变,但是两个对象中的可变元素是指向相同的地址,一个变了,另一个会同时改变,会有影响(list是可变对象)。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值