深拷貝、淺拷貝
1. 淺拷貝
淺拷貝是對(duì)于一個(gè)對(duì)象的頂層拷貝
通俗的理解是:拷貝了引用规肴,并沒(méi)有拷貝內(nèi)容
2. 深拷貝
深拷貝是對(duì)于一個(gè)對(duì)象所有層次的拷貝(遞歸)
進(jìn)一步理解深拷貝
3. 拷貝的其他方式
切片表達(dá)式可以賦值一個(gè)序列
字典的copy方法可以拷貝一個(gè)字典
4. 注意點(diǎn)
淺拷貝對(duì)不可變類型和可變類型的copy不同
copy.copy對(duì)于可變類型捶闸,會(huì)進(jìn)行淺拷貝
copy.copy對(duì)于不可變類型,不會(huì)拷貝拖刃,僅僅是指向
copy.copy和copy.deepcopy的區(qū)別
copy.copy
copy.deepcopy
總結(jié):
淺拷貝是對(duì)一個(gè)對(duì)象的頂層(外層)拷貝删壮,只是拷貝了引用,并沒(méi)有拷貝內(nèi)容兑牡。
變量的賦值是地址的引用央碟,也算是一種淺拷貝。
copy.copy()
深拷貝則是對(duì)一個(gè)對(duì)象深層(遞歸)的拷貝发绢。
copy.deepcopy()
可變類型:列表硬耍、字典
不可變類型:數(shù)字類型、字符串型边酒、元組
如果是可變類型经柴,淺拷貝只拷貝外層,而深拷貝是完全拷貝
如果是純的不可變類型墩朦,那么無(wú)論是淺拷貝還是深拷貝坯认,都只是指向同一個(gè)地址。如果不可變類型里面還存在可變類型,則淺拷貝是指向牛哺,而深拷貝則為完全拷貝陋气。
(了解)列表切片、字典的copy方法均屬于淺拷貝