-
说在前面
-
-
我们在谈拷贝之前,是不是得想一下,拷贝和赋值、引用之间的关系;
-
拷贝 == 赋值?
-
拷贝 == 引用?
-
赋值 == 引用?
-
-
基础例子:
-
-
假如我们有两个变量a 、b,其中a是一个引用,b也是一个引用;
-
我们分别给a 、b 赋值 1、2;
-
a = 1、b = 2;
-
print(a) -> 1;
-
print(b) -> 2;
-
-
引用
-
-
简单来说就是 a、b 分别指向了原始数据 1,2 的内存地址;
-
引用是一块内存指向另一块内存;
-
一般引用中的内容是一个内存地址;
-
也就是a、b 变量分别引用了内存地址中的值 1 和 2;
-
-
赋值
-
-
a = b,这里就是将 b 引用的值赋给了 a, 此时是将 a 地址指向了 b 的引用的地址;
-
这时 print(a) -> 应该是 2;
-
要是对比引用和赋值,其实就是引用相当于对原始数据做操作,赋值相当于对原始数据的副本做操作;
-
其中直接赋值是默认浅拷贝传递数据,传递的是对象的引用,当原始数据 b 改变,则 a 的数据也会做相同的改变;
-
Python 实战深拷贝与浅拷贝
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.