在python中糊治,每一個對象都可以分為不可變性或者可變性唱矛。
不可變性可以用來保證在程序中保持一個對象的固定不變。
一個具有“不可變性”的對象,是一個在其創(chuàng)建以后不能夠被改變的對象揖赴。例如馆匿,不能通過對字符串的某一位置進(jìn)行賦值而改變字符串。
Python中的數(shù)字燥滑、字符串渐北、元組是不可變的;列表和字典可以完全自由地改變铭拧。
盡管無法就地改變一個不可變的對象赃蛛,但是可以通過運(yùn)行一個表達(dá)式創(chuàng)建一個新的對象。例如搀菩,可以通過創(chuàng)建一個新的字符串呕臂,并以相同的變量名進(jìn)行賦值:
str = 'bukebian'
str[0:2] = ''
Traceback (most recent call last):
?File "file.py", line 3, in
str[0:2] = ''
TypeError: 'str' object does not support item assignment
str = 'ok'
print(str)
ok
此時,變量str指向了新的對象'ok'肪跋,曾指過的對象'bukebian'沒有發(fā)生任何變化歧蒋,仍舊在其原來的內(nèi)存空間。只有一種情況會出現(xiàn)州既,那就是被python清理掉谜洽,條件是其他變量都沒有引用(指向)它。