Python基礎入門知識點——深淺拷貝

松鼠愛吃餅乾發表於2020-08-18

深淺拷貝

物件引用、淺拷貝、深拷貝(擴充、難點、重點)

Python中,物件的賦值,拷貝(深/淺拷貝)之間是有差異的,如果使用的時候不注意,就可能產生意外的結果

其實這個是由於共享記憶體導致的結果

拷貝:原則上就是把資料分離出來,複製其資料,並以後修改互不影響。

先看一個非拷貝的例子

使用=賦值(物件引用)

=賦值:資料完全共享

=賦值是在記憶體中指向同一個物件,如果是可變(mutable)型別,比如列表,修改其中一個,另一個必定改變

如果是不可變型別 (immutable) ,比如字串,修改了其中一個,另一個並不會變

Python基礎入門知識點——深淺拷貝

 

淺拷貝(copy)

淺拷貝:資料半共享(複製其資料獨立記憶體存放,但是隻拷貝成功第一層)

Python基礎入門知識點——深淺拷貝

 

深拷貝(deepcopy)

深拷貝:資料完全不共享(複製其資料完完全全放獨立的一個記憶體,完全拷貝,資料不共享)

深拷貝就是完完全全複製了一份,且資料不會互相影響,因為記憶體不共享。

深拷貝的方法有

Python基礎入門知識點——深淺拷貝

相關文章