如何理解不可變資料型別

2021-10-02 15:38:13 字數 419 閱讀 7147

不可變物件(整數、字串、元組)

#不可變 傳值

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 不可變資料型別 資料型別是不允許改變的,這就意味著如果改變量字資料型別的值,將重新分配記憶體空間...