Python 的變量類型
可變類型 / mutable
可變類型的實例霍衫,在初始化之后允許改變其值。
>>> a = []
>>> print(a)
[]
>>> a.append('new_value')
>>> print(a)
['new_value']
但注意邓尤,如果用 = 賦值,其實是改變指向贴谎,而不是改變其實例的值
>>> a=[]
>>> print(id(a))
140323581464840
>>> a.append(1)
>>> print(id(a))
140323581464840
>>> print(a)
[1]
>>> a=[1]
>>> print(id(a))
140323582166152
可以看到汞扎,使用append,并沒有改變a變量的地址并且還改變了a的數(shù)值。但是使用 = 賦值擅这,那么地址就已經(jīng)發(fā)生了改變澈魄,雖然值還是一樣的
不可變類型 / immutable
這種類型的實例,在初始化之后就不允許改變其值仲翎。
但是你會看到一些變量明明可以改數(shù)值痹扇,那是為什么呢铛漓?
>>> a = 3
>>> print(a)
3
>>> a = 4
>>> print(a)
4
因為實例的值不能改變,但是對象可以改變指向帘营,在重新賦值的時候票渠,變量已經(jīng)指向了新對象
>>> a = 3
>>> print(id(a))
140323607520352
>>> a = 4
>>> print(id(a))
140323607520384