賦值、淺拷貝和深拷貝的區別?


 

 

一、賦值:

在 Python 中,對象的賦值就是簡單的對象引用,這點和 C++不同

 

二、淺拷貝(shallow copy):

 

淺拷貝會創建新對象,其內容非原對象本身的引用,而是原對象內第一層對象的引用。淺拷貝有三種形式:切片操作、工廠函數、copy 模塊中的 copy 函數。

三、深拷貝(deep copy):

深拷貝只有一種形式,copy 模塊中的 deepcopy()函數。深拷貝和淺拷貝對應,深拷貝拷貝了對象的所有元素,包括多層嵌套的元素。因此,它的時間和空間開銷要高。

四、拷貝的注意點:

 

1、對於非容器類型,如數字、字符,以及其他的“原子”類型,沒有拷貝一說,產生的都是原對象的引用。
2、如果元組變量值包含原子類型對象,即使采用了深拷貝,也只能得到淺拷貝。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM