5
可能重複:
Why are python strings and tuples are made immutable?爲什麼元組在Python中不可變?
什麼低層設計使得元組不可變在Python?爲什麼這個功能很有用?
可能重複:
Why are python strings and tuples are made immutable?爲什麼元組在Python中不可變?
什麼低層設計使得元組不可變在Python?爲什麼這個功能很有用?
有幾個原因:
__hash__
,則返回的值可能隨着內容更改而改變,這違反了散列值的合約。tuple
方法傳遞序列參數,只有在必要時纔會複製。因爲否則就不會有不可變的序列類型!如果你想要一個可變元組,你只需要使用一個列表。
適當時使用不可變類型具有各種性能特權,並且如果它們被設置爲可變,則不能輕易使用帶有元組鍵的dict
。
他們的哈希值可以改變?咦? – wim 2012-03-15 06:25:18
wim - >在列表更改時散列值會更改。如果列表中有其他位置的參考,列表可以更改。 – 2012-03-15 06:29:31
列表不可用。 – wim 2012-03-15 06:48:24