def test(num):
print(str(id(num))+" >>> 2")
num = 100
print(str(id(num))+" >>> 3")
num = 200
print(str(id(num))+" >>> 1")
test(num)
print(str(id(num))+" >>> 4")
1698577328 >>> 1
1698577328 >>> 2
1698574128 >>> 3
1698577328 >>> 4
4:最後因為外部的num只是把引用傳遞給test方法的num,所以形參num的改變並不會影響外部num,其指向的記憶體還是1698577328。
我們可以在上面的例子中看到我們在方法內改變了形參的值,其記憶體位址發生了改變。但是有的時候在方法內改變了值後,為什麼他的記憶體位址也會不會改變呢,我們來看乙個例子。
def test(num):
print(str(id(num)) + " >>> 1")
print(str(id(num)) + " >>> 1")
num = [1,2,3]
print(str(id(num))+" >>> 1")
test(num)
print(str(id(num))+" >>> 4")
11923272 >>> 1
11923272 >>> 2
11923272 >>> 3
11923272 >>> 4
總體來說可以理解:
對於不可變資料型別,改變他就是重新開闢一塊記憶體空間。
對於可變資料型別,改變他就是對這塊記憶體空間內的內容的改變。
python 可變資料型別和不可變資料型別
不可變資料型別更改後位址發生變化,可變資料型別更改後位址不發生變化。看 說話 a 1 int b string string c 1,2 tuple print type a id a print type b id b print type c id c a 1b 1 c 3 4 print a,...
Python 可變資料型別和不可變資料型別
python的資料儲存在記憶體裡,該資料分為可變資料型別和不可變資料型別 不可變資料型別 字串,數字,元祖 可變資料型別 列表,字典,集合 nums 1 2,3 nums bk nums nums 0 0print nums nums print nums bk nums bk print form...
python 可變資料型別 不可變資料型別
在python中,資料型別分為可變資料型別和不可變資料型別,不可變資料型別包括string,int,float,tuple,可變資料型別包括list,dict。所謂的可變與不可變,舉例如下 a test print a 0 t a 0 1 traceback most recent call las...