Python在heap中分配的對象分成兩類:可變對象和不可變對象。所謂可變對象是指,對象的內容是可變的,例如list。而不可變的對象則相反,表示其內容不可變。
一、不可變對象
由於Python中的變量存放的是對象引用,所以對於不可變對象而言,盡管對象本身不可變,但變量的對象引用是可變的。運用這樣的機制,有時候會讓人產生糊塗,似乎可變對象變化了。如下面的代碼:
從上面得知,不可變的對象的特征沒有變,依然是不可變對象,變的只是創建了新對象,改變了變量的對象引用。
看看下面的代碼,更能體現這點的。
二、對於可變對象
其對象的內容是可以變化的。當對象的內容發生變化時,變量的對象引用是不會變化的。如下面的例子。