Python中的可變與不可變型別
阿新 • • 發佈:2019-01-07
首先,我們需要知道在python中哪些是可變資料型別,哪些是不可變資料型別。可變資料型別:列表list和字典dict;不可變資料型別:整型int、浮點型float、字串型string和元組tuple。
用一句話來概括上述過程就是:“python中的不可變資料型別,不允許變數的值發生變化,如果改變了變數的值,相當於是新建了一個物件,
而對於相同的值的物件,在記憶體中則只有一個物件,內部會有一個引用計數來記錄有多少個變數引用這個物件;可變資料型別,允許變數的值發生變化,即如果對變數進行append、+=等這種操作後,只是改變了變數的值,而不會新建一個物件,變數引用的物件的地址也不會變化,
不過對於相同的值的不同物件,在記憶體中則會存在不同的物件,即每個物件都有自己的地址,相當於記憶體中對於同值的物件儲存了多份,這裡不存在引用計數,是實實在在的物件。
突然想到一點,比如說:字串 s= 'fei',然後 s.upper()輸出'FEI', 但 s還是輸出'fei',不會改變自己,如果不想要a了,可以
a = a.upper(),這樣自己覆蓋自己。
而對於字典,比如 dict = {
'name':'fei',
'pwd':'weweweas',
}
而,dict.clear()就會刪除字典中的所有值,就會改變dict的值
都是自己的理解不知道對不對,如果不對,大神可以指出來。