說起這個函式就需要先了解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...