python的深拷贝与浅拷贝
定义
直接赋值,浅拷贝,深拷贝
直接赋值:其实就是对象的引用(别名)。
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。复制整个依赖的变量。
可变数据类型 和 不可变数据类型
不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。
可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。
代码
import copy
a = 15 # 不可变数据类型
b = 20
c = 30
list0 = [1, 2, 3]
list1 = [a, b, c, 1, 3, 10, list0] # 可变数据类型
list2 = list1 # 复制
copy_list = copy.copy(list1) # 浅拷贝
deep_list = copy.deepcopy(list1) # 深拷贝