Swagger使用手冊(自己收藏)
阿新 • • 發佈:2020-07-20
深、淺拷貝總結
深拷貝
-
拷貝可變資料型別,如列表容器:
a = [1, 2, [3, 4]]
b = copy.deepcopy(a)
-
a 與 b 所指的列表容器的空間地址不一致,即
id(a) != id(b)
-
a 與 b 列表容器中的可變資料型別的空間地址不一致
-
a 與 b 列表容器中的不可變資料型別的空間地址一致
注意:
-
a 列表容器中的某些元素髮生改變時,b 容器中的相應元素是否會發生相同的改變?
答案是: a 容器中的任何元素髮生任何變化,與 b 容器毫無瓜葛,b 中元素不會發生變化 !
圖示
淺拷貝
-
拷貝可變資料型別,如列表容器:
a = [1, 2, [3, 4]]
b = copy.copy(a)
-
a 與 b 所指的列表容器的空間地址不一致,即
id(a) != id(b)
-
a 與 b 列表容器中的所有元素的空間地址都是一致的!
注意:
-
a 列表容器中的某些元素髮生改變時,b 容器中的相應元素是否會發生相同的改變?
答案是:
- 若 a 容器中的第一級元素髮生改變,b 容器中的相應的元素不會發生改變!
- 若 a 容器中的第二級乃至更深層級的元素髮生改變,b 容器中的相應元素也會發生相同的改變!
圖示
深淺拷貝不可變元素
import copy a = 10 b = copy.copy(a) b = copy.deepcopy(a)
當深淺拷貝不可變資料型別,如整型時,a 與 b 所指向的空間地址是一致的!
圖示