python語法 記憶體分配 id函式使用

2021-10-09 16:42:14 字數 1457 閱讀 2880

python中會為每個物件分配記憶體,哪怕他們的值完全相等。id(object)函式是返回物件object在其生命週期內位於記憶體中的位址,id函式的引數型別是乙個物件。

name1 =

2name3 =2id

(name1)

out[31]

:140704132617280

id(name3)

out[32]

:140704132617280

name1 == name3 比較的是name1和name3的值是否相等,name1 is name3 則比較的是name1和name3記憶體(或id)是否一樣。

name1 =

200name2 =

200id

(name1)

out[37]

:140704132623616

id(name2)

out[38]

:140704132623616

name1 =

20000000

name2 =

20000000

id(name1)

out[41]

:2220351232464

id(name2)

out[42]

:2220351233104

name1 == name2

out[44]

:true

name1 is name2

out[45]

:false

name1 =[1

,2,3

]name3 = name1

id(name1)

out[15]

:2220353242760

id(name3)

out[17]

:2220353242760

name1

out[18]

:[1,

2,3]

name3

out[19]

:[1,

2,3]

4)name3

out[21]

:[1,

2,3,

4]name1

out[22]

:[1,

2,3,

4]id(name1)

out[23]

:2220353242760

id(name3)

out[24]

:22203532427605)

id(name3)

out[26]

:2220353242760

id(name1)

out[27]

:2220353242760

id(name1.copy())

out[28]

:2220377117384

標頭檔案,語法,記憶體分配,編譯

c 標頭檔案命名約定 c 舊式風格 以.h結尾 iostream.h c 可以 c舊式風格 以.h結尾 math.h 同上 c 新式風格 沒有副檔名 iostream c 可以使用命名空間 轉換後c 加上字首c無副檔名cmath 同上 定義標頭檔案時候注意 當檔案用尖括號包含時從乙個或多個系統檔案中...

Python 函式記憶體分配

根據 理解函式記憶體分配 1將函式 存入記憶體方法區 只是儲存 不儲存 所表示的資料 def fun01 a 100 2 呼叫函式時在記憶體棧區開闢空間 棧幀 fun01 3當函式執行完畢後,棧幀被銷毀.p2 0 a g01 1 g02 a 6 將變數g01儲存的物件位址傳入函式 fun02 g01...

python記憶體分配機制

python中數值型別是不可變物件,當程式試圖改變資料的值時,程式會重新生成新的資料,而不是改變原來的資料。python函式的引數都是物件的引用,如果在引用不可變物件時嘗試修改物件,程式會在函式中生成新的物件 開闢新的位址空間 函式外被引用的物件則不會被改變。num 1 defadd num num...