Python深拷贝和浅拷贝如何理解?Python深浅拷贝的区别在哪

在python之中我们去给一个变量赋值的时候,如果这个值是已经创建出来的一个对象,那么这个时候就会启用一个叫做拷贝的运行机制 。而python之中的拷贝又会分为深拷贝和浅拷贝,下面这篇文章就会来详细的解析一下Python深拷贝和浅拷贝,一起往下看看吧 。

Python深拷贝和浅拷贝如何理解?Python深浅拷贝的区别在哪

文章插图
一、浅拷贝
拷贝可以简单的理解为复制,也就是将一个对象的内容完全不经任何改变的赋值给另一个变量 。通过代码来看会更加直观,示例如下:
list1 = [1, 2, 3]list2 = list(list1)print(list2)在上面的示例之中两个列表对象内的值都是一样的,其中list2就是由list1所得到的 。但是使用is关键字去对它们进行相同判断时得到的结果就是False,这是因为这两个列表对象保存内容的内存地址是不一样的 。
从这一点就可以得到浅拷贝的实际意义,浅拷贝指的就是将一个对象的内容复制到另一个对象上面,而在这个过程之中被赋值的对象实际上是在内存中重新开辟了一个空间来保存数据,但是里面的内容是对原对象的元素引用 。
【Python深拷贝和浅拷贝如何理解?Python深浅拷贝的区别在哪】二、深拷贝
深拷贝就可以理解为是浅拷贝更加彻底的一种拷贝机制,它同样也是创建新的对象和内存来保存内容 。但是深拷贝是通过递归的方式将拷贝对象中所有内容都复制到新对象之中,重新生成的新对象和原来的拷贝对象没有任何关系,示例如下:
import copylist1 = [[1, 2], (30, 40)]list2 = copy.deepcopy(list1)以上就是关于“Python深拷贝和浅拷贝如何理解?Python深浅拷贝的区别在哪”的全部内容了,希望对你有所帮助 。

    推荐阅读