python中的可變與不可變類型、深淺拷貝

寫在前面

本文源自: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

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章