文章目录
前言
最近开始复习软构,想到了关于内存的一些问题,所以今天来总结一下关于深拷贝浅拷贝的相关内容。
一、什么是深拷贝浅拷贝
这个概念是很容易理解的,浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。即多个变量指向一块内存地址。而深拷贝复制变量值,对于引用数据,则递归至基本类型后,再复制。深拷贝后的对象与原来的对象是完全隔离的,互不影响,对一个对象的修改并不会影响另一个对象。这样很好实现了表示不泄露。
首先浅拷贝有引用拷贝:
这样的话,得到的对象指向同一块内存。打印情况如下:
由此可见,c和newC他们的地址是相同的,那他们引用了同一个对象。他们都指向了对象Children(“111”,18)。这叫引用拷贝。
然后我们一下对象拷贝,创建一个对象本身的副本
可以看出,上面的对象拷贝后,两个变量指向了不同的地址空间。这其实就是一种深拷贝。
同时,我们在Python中使用.copy也可以进行深拷贝的操作。
总结
这篇文章主要讲述了关于深拷贝和浅拷贝的一些相关的内容,是我在实验与生活中碰到的,所以进行一个简要的总结。