在Python 中創建不可變物件
在Python 中創建不可變物件的挑戰讓尋求建立不可修改資料結構的開發人員感到困惑。雖然子類化元組提供了一種解決方案,但它引入了屬性的可訪問性問題。
提出的一個解決方案涉及定義從元組派生的名為 Immutable 的類型。它重寫建構函式並限制屬性修改,有效防止物件狀態的變更。然而,這種方法仍然允許透過索引存取屬性,這可能並不理想。
響應者建議的替代方法引入了 collections.namedtuple 的使用。該庫建立具有命名屬性的不可變類型。命名元組提供了一些額外的好處,例如與pickle和複製的兼容性,簡化資料序列化和操作。
透過使用命名元群組,可以快速建立具有指定屬性的不可變物件:
<code class="python">Immutable = collections.namedtuple("Immutable", ["a", "b"])</code>
雖然這方法並沒有完全消除透過索引的屬性可訪問性,它為在Python 中建立不可變物件提供了更簡潔、更通用的解決方案。
以上是如何在 Python 中建立不可變物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!