Python中的深拷贝与浅拷贝

发布于 2021-12-27  597 次阅读


通过上图我相信大家都有了了解

a是原件,b是赋值方法,c是拷贝方法,d是深拷贝方法

a创建:当我们创建一个变量/对象的时候,会被系统分配给一块内存,用来储存各种各样的恭喜,将变量与对象通过引用(指针)的方式连接起来。

b赋值:只是赋值了引用,并不会开辟新的空间

c浅拷贝:浅拷贝的方法有很多种,他之所以被称为浅拷贝,是因为他只拷贝了一层,拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。

浅拷贝也要分情况讨论当浅拷贝是不可变对象时,是和赋值是一样的:

浅拷贝可变对象的时候也有需要注意的地方,比如我第一个元素是列表:

d深拷贝:和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。深拷贝出来的对象是一个全新的对象,不再与原来的对象有任何关联。

深拷贝需要导入copy包,调用deepcopy方法