python中的id 函式及讀取list的例子

2021-09-12 16:32:07 字數 919 閱讀 6385

說起這個函式就需要先了解pyhton的變數儲存機制了:

變數:是動態變數,不用提前宣告型別。

當我們寫:a = 'abc'時,python直譯器幹了兩件事情:

在記憶體中建立了乙個'abc'的字串;

在記憶體中建立了乙個名為a的變數,並把它指向'abc'。

id(a)讀取的是a的記憶體位址

def addelement(_list):

print(6,id(_list))

print(7,id(_list))

return _list

if __name__=="__main__":

list1=[1,2,3]

print(1,id(list1))

list2 = addelement(list1)

print(2,list1)

print(3,id(list1))

print(4,list2)

print(5,id(list2))

執行結果:

(1, 48757192l)

(6, 48757192l)

(7, 48757192l)

(2, [1, 2, 3, 0])

(3, 48757192l)

(4, [1, 2, 3, 0])

(5, 48757192l)

兩個要點:

return語句返回後list1就已經變為其返回值而不是原來的值

自從定義後list1這個變數的本質就是乙個記憶體盒子,傳到函式裡面的一直是這個變數本身,所以位址沒變,最後返回的還是他,只是後面加了乙個新值,而用a=b這種賦值方法後ab的記憶體位址是一致的。因此從頭到尾list1,list2,_list記憶體位址都沒變過

python中的id 函式及讀取list的例子

說起這個函式就需要先了解pyhton的變數儲存機制了 變數 是動態變數,不用提前宣告型別。當我們寫 a abc 時,python直譯器幹了兩件事情 在記憶體中建立了乙個 abc 的字串 在記憶體中建立了乙個名為a的變數,並把它指向 abc id a 讀取的是a的記憶體位址 def addelemen...

python中的id 函式及讀取list的例子

說起這個函式就需要先了解pyhton的變數儲存機制了 變數 是動態變數,不用提前宣告型別。當我們寫 a abc 時,python直譯器幹了兩件事情 在記憶體中建立了乙個 abc 的字串 在記憶體中建立了乙個名為a的變數,並把它指向 abc id a 讀取的是a的記憶體位址 def addelemen...

python中id函式執行方式

更多程式設計教程請到 菜鳥教程 高州陽光論壇 人人影視 id object 功能 返回的是物件的 身份證號 唯一且不變,但在不重合的生命週期裡,可能會出現相同的id值。此處所說的物件應該特指復合型別的物件 如類 list等 對於字串 整數等型別,變數的id是隨值的改變而改變的。python版本 py...