Python——深浅拷贝
理解深浅拷贝需要的知识
1.拷贝的定义
1.1.拷贝的类属—拷贝的本质
1.2 拷贝的差异—拷贝的类型
2.拷贝的本质
2.1.创建一个新的对象
2.2.对这个新的对象赋值
3.拷贝的类型
3.1深拷贝
定义:
深拷贝会构造一个新的对象,然后递归地将原始对象中所找到的对象的副本插入
3.2浅拷贝
定义:
浅拷贝是建立一个新的对象,然后(在可能的范围内)将原对象中找到的引用插入其中
从定义可以看出,深浅拷贝的差别在于对对象赋值的方式不同,因此对深浅拷贝的讨论转化为对赋值的讨论
4.赋值的定义
定义:
将值(对象)赋予变量的过程
5.赋值的方式
5.1引用传递
将一个数据对象在内存中的地址保存到栈空间的变量中(引用),这样变量就指向了堆内存中的这个数据对象。
5.2值传递
赋值时拷贝内存中完整的数据结构对象,这时在内存中会保存两份内容完全相同,但地址不同的数据对象。
由于赋值过程涉及对象的数据类型,因此继续往下挖掘,了解Python中的对象数据类型
6.数据类型
[Python的可变与不可变数据类型](https://blog.csdn.net/dan15188387481/article/details/49864613/)
7.引用传递的方式
在理解以上的知识点后,终于可以讨论拷贝的方式(赋值方式)
8.拷贝的方式
由于不确定Python是否存在真正的值传递,因此在这做个标注,以后改进