可变对象与不可变对象的种类
可变对象为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