Python 賦值、淺拷貝、深拷貝之間區別
賦值
-
不會開闢新的記憶體空間,是對原對象值的引用
-
當原對象值,改變後,賦值的變數也會隨之改變
淺拷貝
-
只會拷貝最外層的對象,會開闢新的記憶體空間,和原對象是互相獨立的
-
如果這個對象有嵌套對象的話,淺拷貝只會拷貝外層對象,對於裡面的對象是對其值的引用
-
接下來我們對嵌套的列表進行更改,可以發現淺拷貝的後對象,其嵌套列表中的值也隨之改變了
深拷貝
-
了解了淺拷貝後,深拷貝就好理解了。會開闢新的記憶體空間,並且會拷貝原對象所有值,不論是外層還是有嵌套的情況,與原對象完全獨立
-
當原對象嵌套的內層發生改變後,深拷貝的對象也不會發生改變