可变对象的深拷贝与浅拷贝

可变对象与不可变对象的种类

可变对象为list、dict、set,可变对象可以在其 id() 保持固定的情况下可改变其取值

不可变对象为number、string、tuple,具有固定值的对象。不可变对象包括数字、字符串和元组。这样的对象不能被改变。如果必须存储一个不同的值,则必须创建新的对象


image.png

可变对象的深拷贝与浅拷贝

首先深拷贝与浅拷贝针对可变对象的
copy模块

浅拷贝

1、浅拷贝会创建一个新的容器对象
2、对于对象中的元素,浅拷贝就只会使用原始元素的引用(内存地址)

浅拷贝的手段

1、使用切片操作[:] ——a[:]
2、直接赋值 ——a=b
3、copy模块的copy()方法 ——a.copy()

深拷贝

1.深拷贝和浅拷贝一样,都会创建一个新的容器对象(compound object)
2.和浅拷贝的不同点在于,深拷贝对于对象中的元素,深拷贝都会重新生成一个新的对象

深拷贝的手段

1、用copy模块的deepcopy()方法


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容