Python基礎入門知識點——深淺拷貝
深淺拷貝
對象引用、淺拷貝、深拷貝(拓展、難點、重點)
Python中,對象的賦值,拷貝(深/淺拷貝)之間是有差異的,如果使用的時候不注意,就可能產生意外的結果
其實這個是由於共享記憶體導致的結果
拷貝:原則上就是把數據分離出來,複製其數據,並以後修改互不影響。
先看一個非拷貝的例子
使用=賦值(對象引用)
=賦值:數據完全共享
=賦值是在記憶體中指向同一個對象,如果是可變(mutable)類型,比如列表,修改其中一個,另一個必定改變
如果是不可變類型 (immutable) ,比如字元串,修改了其中一個,另一個並不會變
淺拷貝(copy)
淺拷貝:數據半共享(複製其數據獨立記憶體存放,但是只拷貝成功第一層)
深拷貝(deepcopy)
深拷貝:數據完全不共享(複製其數據完完全全放獨立的一個記憶體,完全拷貝,數據不共享)
深拷貝就是完完全全複製了一份,且數據不會互相影響,因為記憶體不共享。
深拷貝的方法有