龙空技术网

python中浅拷贝和深拷贝的区别

Python智禅 78

前言:

当前你们对“浅拷贝和深拷贝的区别 python”大约比较注重,大家都想要分析一些“浅拷贝和深拷贝的区别 python”的相关知识。那么小编同时在网络上收集了一些关于“浅拷贝和深拷贝的区别 python””的相关内容,希望各位老铁们能喜欢,朋友们快快来学习一下吧!

浅拷贝可变类型浅拷贝

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”即可(免费分享哦)希望能对你有所帮助

标签: #浅拷贝和深拷贝的区别 python