Python直接賦值及深淺拷貝原理詳解
定義
直接賦值:就是對象的引用(別名) 淺拷貝(copy):拷貝父對象,不拷貝對象內(nèi)部的子對象 深拷貝(deepcopy):copy模塊的deepcopy方法,完全拷貝父對象及其子對象解釋
b = a: 賦值引用,a和b都指向同一個對象
b = a.copy(): 淺拷貝,a和b都是一個獨(dú)立的對象,但它們的子對象是指向統(tǒng)一對象(是引用)
b = copy.deepcopy(a): 深拷貝,a和b完全拷貝了父對象及其子對象,兩者是完全獨(dú)立的
示例
以下是直接賦值、淺拷貝和深拷貝之對比
import copya = [1, 2, 3, 4, [’a’, ’b’]] #原始對象b = a#直接賦值,原始對象的引用c = copy.copy(a) #淺拷貝d = copy.deepcopy(a) #深拷貝a.append(5) #修改對象aa[4].append(’c’) #修改對象a中的[’a’, ’b’]列表對象print( ’a = ’, a )print( ’b = ’, b )print( ’c = ’, c )print( ’d = ’, d )
以上實(shí)例執(zhí)行輸出結(jié)果為:
a = [1, 2, 3, 4, [’a’, ’b’, ’c’], 5]b = [1, 2, 3, 4, [’a’, ’b’, ’c’], 5]c = [1, 2, 3, 4, [’a’, ’b’, ’c’]]d = [1, 2, 3, 4, [’a’, ’b’]]
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)2. xpath簡介_動力節(jié)點(diǎn)Java學(xué)院整理3. 使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁的方法4. 使用css實(shí)現(xiàn)全兼容tooltip提示框5. XML入門的常見問題(四)6. 詳解盒子端CSS動畫性能提升7. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera8. 怎樣才能用js生成xmldom對象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?9. XML入門的常見問題(一)10. CSS可以做的幾個令你嘆為觀止的實(shí)例分享
