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...