Python淺拷貝與深拷貝的一點簡單理解

Python中的對象分為可變對象與不可變對象,其區(qū)別主要在于內(nèi)存地址,也即id的不同
對于不可變對象,淺拷貝與深拷貝沒有區(qū)別,而對于可變對象,淺拷貝以及賦值語句均是把對象的id賦值給新的拷貝對象,而深拷貝則是會創(chuàng)建新的id
例:

圖片.png

判斷id是否相同:

圖片.png

改變a中的對象,可以看到賦值的b,淺拷貝的c均改變,而深拷貝的d不變,原因就是d已經(jīng)引用了不同的id:

圖片.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 深拷貝和淺拷貝這個問題在面試中常常被問到,而在實際開發(fā)中,只要稍有不慎,就會在這里出現(xiàn)問題。尤其對于初學(xué)者來說,我...
    西門淋雨閱讀 1,924評論 0 1
  • python的賦值號 python的賦值符號會創(chuàng)建一個新的對象出來,并與之關(guān)聯(lián),無論其是不是可變類型。 如上代碼所...
    __Aster__閱讀 677評論 0 0
  • 307、setValue:forKey和setObject:forKey的區(qū)別是什么? 答:1, setObjec...
    AlanGe閱讀 1,708評論 0 1
  • 我們都是宇宙中渺小的塵埃。我們散落在這世間,卑微且不值一提。 我一直認(rèn)為我的朋友們是天底下最好的人...
    不二臣Mikey閱讀 205評論 0 0
  • 二分查找,也稱折半查找目的:提高查找速度(當(dāng)查找性能成為問題時,考慮使用二分查找) 使用前提:(較為嚴(yán)格)已經(jīng)排好...
    NiceBlueChai閱讀 404評論 0 0

友情鏈接更多精彩內(nèi)容