不可變物件(整數、字串、元組)
#不可變 傳值
def change(b):
b=1a=10change(a)
print(a)
可變物件(列表,字典)
#可變物件函式傳值
def change(a):
a[1]=99
list=[1,2,3,4]
change(list)
print(list)
執行這兩段**會發現結果的不同,原因在於第一段**中的物件屬於不可變型別,函式傳值只是複製了乙個物件,change函式中只是對這個複製的物件操作,類似c語言中的形參;第二段**,傳遞引數實際傳遞了該物件的指標過去,所以是直接對該物件進行操作,所以會看到不同的結果。
參考文獻:
python 可變資料型別 不可變資料型別
在python中,資料型別分為可變資料型別和不可變資料型別,不可變資料型別包括string,int,float,tuple,可變資料型別包括list,dict。所謂的可變與不可變,舉例如下 a test print a 0 t a 0 1 traceback most recent call las...
python 可變資料型別 不可變資料型別
在python中,資料型別分為可變資料型別和不可變資料型別,不可變資料型別包括string,int,float,tuple,可變資料型別包括list,dict。所謂的可變與不可變,舉例如下 a test print a 0 t a 0 1 traceback most recent call las...
可變資料型別與不可變資料型別
可變資料型別 資料更改前後,記憶體id不變 列表,字典,集合 不可變資料型別 資料更改前後,記憶體id發生改變 數字 包括 整型,浮點型 字串,元組 分別對各種資料型別進行驗證 數字 int float 不可變資料型別 資料型別是不允許改變的,這就意味著如果改變量字資料型別的值,將重新分配記憶體空間...