可變於不可變物件分類

2022-09-13 20:48:15 字數 682 閱讀 6388

python在heap中分配的物件分成兩類:

可變物件和不可變物件。

所謂可變物件是指,物件的內容可變,而不可變物件是指物件內容不可變。 

可變即記憶體空間可變,不可變即記憶體空間不可變。這裡用 id 函式看物件的記憶體位址有沒有變化。

不可變(immutable):int、字串(string)、float、(數值型number)、元組(tuple)

可變(mutable):字典型(dictionary)、列表型(list)

如不可變型別例子:  id不變,type不變,值也不變。

而x對應的記憶體位址沒有變化, 如果沒有其他變數引用原有物件的話(即引用計數為0),原有物件就會被**。

如可變型別例子: id不變,type不變,值會變。

可變物件,不可變物件

不可變物件為字串,元組等 可變物件為列表,字典,集合等。淺拷貝只是對已經存在的記憶體新增加乙個物件引用。深拷貝就是重新申請乙個新的記憶體,使這個是新物件是新記憶體位址的引用。對於可變物件引用時時經常出現。考慮以下兩段 1 l for i in range 10 num i print l 結果 2 ...

len is 可變於不可變型別

a asdfghjkl iuygb b 小公尺 c a b c d len統計字元或元素的個數 print len a print a 2 16d print len b print b 1 2公尺 print len c print c 2 3c print len d print d name ...

可變物件和不可變物件

要理解可變物件和不可變物件,先要理解final關鍵字。參考此部落格 沒有經過原博主的同意便引用了一些,侵刪!final關鍵字可以用來修飾類 方法和變數 成員或區域性 final修飾類時表明這個類不能被繼承。final類中的方法會被隱式的定義為fianl,變數自行定義需要不要被final修飾。fina...