在Python 中創建不可變物件
在Python 中創建不可變物件的挑戰讓尋求建立不可修改資料結構的開發人員感到困惑。雖然元組子類化提供了一種解決方案,但它引入了屬性的可訪問性問題。
提出的一個解決方案涉及定義從元組派生的名為 Immutable 的類型。它重寫建構函式並限制屬性修改,有效防止物件狀態的變更。然而,這種方法仍然允許透過索引存取屬性,這可能並不理想。
響應者建議的替代方法引入了 collections.namedtuple 的使用。該庫建立具有命名屬性的不可變類型。命名元組提供了諸如與 pickle 和複製相容、簡化資料序列化和操作等優點。
透過使用命名元組,可以快速建立具有指定屬性的不可變物件:
Immutable = collections.namedtuple("Immutable", ["a", "b"])
雖然這種方法並沒有完全消除通過索引的屬性可訪問性,但它為在Python 中創建不可變對象提供了更簡潔、更通用的解決方案.
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3