Python的深拷貝與淺拷貝 - 邱乘屹的個人技術博客

Python的深拷貝與淺拷貝

深拷貝與淺拷貝

copy模塊用於對象的拷貝操作,該模塊提供了兩種主要的方法:copy.copy與copy.deepcopy,分別表示淺拷貝和深拷貝。

二者的區別 深拷貝就是將一個對象拷貝到另一個對象中,這意味着如果你對一個對象的拷貝做出改變時,不會影響原對象。在Python中,我們使用函數deepcopy()執行深拷貝,而淺拷貝則是將一個對象的引用拷貝到另一個對象上,所以如果我們在拷貝中改動,會影響到原對象。我們使用函數function()執行淺拷貝

淺拷貝

淺拷貝即不管是多麼複雜的數據結構,淺拷貝只會拷貝第一層,也就是對於一個對象的頂層的拷貝,通俗的理解就是隻拷貝了引用,並沒有拷貝內容

import copy  
a = [1,2]
b = copy.copy(a)

深拷貝

深拷貝則會完全複製原變量的所有數據(遞歸性質的拷貝),在內存中生成一套完全一樣的內容,如果對這兩個變量的其中一個進行修改另一個並不會改變

import copy  
a = [1,2]
b = copy.deepcopy(a)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章