建立「完美」字典
在 Python 中,建立與字典行為相同的自訂類別可能是一項複雜的任務。以下是如何使用抽象基底類別 (ABC) 來實現它。
實作 MutableMapping ABC
collections.abc 模組為各種資料結構提供 ABC,包括 MutableMapping。透過實作 MutableMapping,我們可以建立一個與 dict 具有相同介面的物件。這是一個極簡實作:
from collections.abc import MutableMapping class TransformedDict(MutableMapping): def __init__(self, *args, **kwargs): self.store = dict() self.update(dict(*args, **kwargs)) def __getitem__(self, key): return self.store[self._keytransform(key)] def __setitem__(self, key, value): self.store[self._keytransform(key)] = value def __delitem__(self, key): del self.store[self._keytransform(key)] def __iter__(self): return iter(self.store) def __len__(self): return len(self.store) def _keytransform(self, key): return key
自訂鍵轉換
透過重寫 _keytransform 方法,我們可以對鍵套用任意轉換。例如,強制使用小寫鍵:
class MyTransformedDict(TransformedDict): def _keytransform(self, key): return key.lower()
ABC 的好處
實施ABC 具有多個優點:
綜上所述,實作 MutableMapping 和重寫 _keytransform 提供了一種簡潔有效的方法來建立具有自訂鍵處理的自訂字典,同時保持標準字典的功能。
以上是如何使用轉換後的鍵在 Python 中建立自訂字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!