浅拷贝
- 可变类型浅拷贝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指向同一片空间
深拷贝
- 可变类型深拷贝深拷贝使用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指向同一片空间
【原创】禁止转载
最后,小编想说:我是一名python开发工程师,
整理了一套最新的python系统学习教程,
想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助