浅拷贝
可变类型浅拷贝
copy函数就是浅拷贝,只对可变类型的第一层对象进行拷贝,
对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象
可变类型:a = [1, 2, 3] b = [11, 22, 33]
有子对象的可变类型: data = [a, b]
普通赋值
data_mycopy = data – data和data_mycopy指向同一片空间
浅拷贝
data_copy = copy.copy(data) – data和data_copy指向不同的空间
不可变类型浅拷贝
不可变类型进行浅拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝了这个对象的引用
不可变类型: a = (1, 2, 3) b = (11, 22, 33)
有子对象的不可变类型:data = (a, b)
data_copy = copy.copy(data) – data和data_copy指向同一片空间
发表本编内容,主要是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:772733408大家一起探讨。
深拷贝
可变类型深拷贝
深拷贝使用deepcopy函数
只要发现拷贝对象有可变类型就会对该对象到最后一个可变类型的每一层对象进行拷贝,对每一层拷贝的对象都会开辟新的内存空间进行存储
data_deepcopy = copy.deepcopy(data)
不可变类型深拷贝
不可变类型的深拷贝说明:
不可变类型进行深拷贝不会给拷贝的对象开辟新的内存空间,而只是拷贝了这个对象的引用
不可变类型: a = (1, 2, 3) b = (11, 22, 33)
有子对象的不可变类型:data = (a, b)
data_deepcopy = copy.deepcopy(data) – data和data_copy指向同一片空间
【原创】禁止转载