Python 深淺拷貝的知識點

2021-10-08 18:53:23 字數 1007 閱讀 1786

1.拷貝的定義

1.1.拷貝的類屬—拷貝的本質

1.2 拷貝的差異—拷貝的型別

2.拷貝的本質

2.1.建立乙個新的物件

2.2.對這個新的物件賦值

3.拷貝的型別

3.1深拷貝

定義:深拷貝會構造乙個新的物件,然後遞迴地將原始物件中所找到的物件的副本插入

3.2淺拷貝

定義:淺拷貝是建立乙個新的物件,然後(在可能的範圍內)將原物件中找到的引用插入其中

從定義可以看出,深淺拷貝的差別在於對物件賦值的方式不同,因此對深淺拷貝的討論轉化為對賦值的討論

4.賦值的定義

定義:

將值(物件)賦予變數的過程

5.賦值的方式

5.1引用傳遞

將乙個資料物件在記憶體中的位址儲存到棧空間的變數中(引用),這樣變數就指向了堆記憶體中的這個資料物件。

5.2值傳遞

賦值時拷貝記憶體中完整的資料結構物件,這時在記憶體中會儲存兩份內容完全相同,但位址不同的資料物件。

由於賦值過程涉及物件的資料型別,因此繼續往下挖掘,了解python中的物件資料型別

6.資料型別

[python的可變與不可變資料型別](
7.引用傳遞的方式在理解以上的知識點後,終於可以討論拷貝的方式(賦值方式)

8.拷貝的方式

深淺拷貝 知識點補充

深淺拷貝 lst1 毛獅王 紫衫龍王 白眉鷹王 青翼蝠王 lst2 lst1 print lst1 print lst2 楊逍 print lst1 print lst2 結果 毛獅王 紫衫龍王 白眉鷹王 青翼蝠王 楊逍 毛獅王 紫衫龍王 白眉鷹王 青翼蝠王 楊逍 dic1 dic2 dic1 pr...

js基礎知識點,深淺拷貝,

1.布林值中 undefined null nan 無內容字串 0 false顯示出false。2.與運算子中,由左至右判斷,當為假時直接輸出第乙個值,為真時判斷下乙個,全真才為真。全假才為假 var a 0 2 document.write a 輸出顯示為 0 var a 1 2 4 docume...

python 深淺拷貝案例 python 深淺拷貝

深淺拷貝 對於 數字 和 字串 而言,賦值 淺拷貝和深拷貝無意義,因為其永遠指向同乙個記憶體位址 import copy a1 22255 a2 22255 print id a1 id a2 3428240 3428240 對於字典 元祖 列表 而言,進行賦值 淺拷貝和深拷貝時,其記憶體位址的變化...