1. 程式人生 > >引用(一)可變、不可變型別

引用(一)可變、不可變型別

想一想

a = 1
b = a
b
1

a = 2
a
2
請問此時b的值為多少?

a = [1, 2]
b = a
b
[1, 2]

a.append(3)
a
[1, 2, 3]
請問此時b的值又是多少?
引用
在python中,值是靠引用來傳遞來的。

我們可以用id()來判斷兩個變數是否為同一個值的引用。 我們可以將id值理解為那塊記憶體的地址標示。

a = 1
b = a
id(a)
13033816

id(b) # 注意兩個變數的id值相同
13033816

a = 2
id(a) # 注意a的id值已經變了
13033792

id(b) # b的id值依舊
13033816

a = [1, 2]
b = a
id(a)
139935018544808

id(b)
139935018544808

a.append(3)
a
[1, 2, 3]

id(a)
139935018544808

id(b) # 注意a與b始終指向同一個地址
139935018544808
引用原理

總結:
之前為了更好的理解變數,咱們可以把a=100理解為變數a中存放了100,事實上變數a儲存是100的引用(可理解為在記憶體中的一個編號)

可變、不可變型別
總結
所謂可變型別與不可變型別是指:資料能夠直接進行修改,如果能直接修改那麼就是可變,否則是不可變
可變型別有: 列表、字典、集合
不可變型別有: 數字、字串、元組