「完璧な」辞書の作成
Python では、辞書と同じように動作するカスタム クラスを作成するのは複雑なタスクになる場合があります。ここでは、抽象基本クラス (ABC) を使用してこれを実現する方法を説明します。
MutableMapping ABC の実装
collections.abc モジュールは、MutableMapping を含むさまざまなデータ構造の ABC を提供します。 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 中国語 Web サイトの他の関連記事を参照してください。