1. 程式人生 > >python的賦值和賦址

python的賦值和賦址

python的數字和字串的值是不變的(元祖也是不可變的),所以當一個變數(數字或字串)進行值改變的操作時,其實是新開闢了一個地址來存放這個新值。
例如:

>>>a=2
>>>b=a
>>>a=3
>>>b
2

當執行a=3時,其實是新開闢了一塊記憶體空間來存放3,並且把索引a從2那邊解除,指向了存放3的記憶體地址。所以
a的值是3,但是b還是2。因為b依舊指向2所在的記憶體空間。

再來看看其他非數字和字串的操作,例如列表,

>>>a=[2]
>>>b=a
>>>a
.append(3) >>>b [2,3]

當執行a.append時,因為列表的值是可以變化的,所以就在原來的存放a的記憶體地址改變了a的值,由於a,b
是指向同一地址空間的索引,所以當此記憶體地址所儲存的值被改變時,列印b時,b的值也變化了。