寫在前面
本文源自:http://baijiahao.baidu.com/s?id=1598145363846525787&wfr=spider&for=pc
1、有哪些是可變類型和不可變類型
可變類型 | 列表(list)、字典(dict) |
不可變類型 | 數字(int,long,float)、布爾(bool)、字符串(string)、元組(tuple) |
2、區分
可變類型 | 變量對應的值中的數據可以被修改,但內存地址保持不變。 |
不可變類型 | 變量對應的值中的數據是不能被修改,如果修改就會生成一個新的值從而分配新的內存空間。 |
可變類型改變值,內存地址不會改變
不可變類型值一旦改變,內存地址就改變
3、原理
可變類型執行過程和內存分析
不可變類型執行過程和內存分析
4、易錯點(深淺拷貝相關)
由於可變類型賦值的變量都指向同一地址空間,所以當我們改變賦值前後任意一個變量,兩個變量最後的值都會改變,如圖:
如果要創建一個獨立(地址空間)的變量,這裏需要用到深淺拷貝的相關知識點,如圖(淺拷貝):
深淺拷貝源文:https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html