従来のインデックス付け (mydict['val'] など) を使用した辞書メンバーの操作は、面倒な場合があります。この質問は、ドット表記 (mydict.val など) を有効にして辞書のアクセシビリティを強化する方法について説明します。さらに、同様の方法でネストされた辞書にアクセスするためのソリューションも模索します。
ドット表記によるアクセスを実現する鍵は、組み込みの辞書クラスを継承するカスタム クラスを作成することにあります。 __getattr__、__setattr__、および __delattr__ メソッドを定義すると、属性のアクセス、設定、および削除の操作をインターセプトし、それらを基になるディクショナリにリダイレクトできます。そのようなクラスの例を次に示します:
class dotdict(dict): """dot.notation access to dictionary attributes""" __getattr__ = dict.get __setattr__ = dict.__setitem__ __delattr__ = dict.__delitem__
その使用法を示すために、サンプル辞書を作成しましょう:
mydict = {'val': 'it works'}
ここで、dotdict クラスを使用してこの辞書をラップできます。
mydict = dotdict(mydict)
この変換により、ドット表記を使用して辞書メンバーにアクセスできるようになります。
mydict.val # 'it works'
さらに、dotdict インスタンスの追加レイヤーを作成することで、この概念をネストされた辞書に拡張できます。たとえば、mydict 内にネストされた辞書を作成し、複数レベルのドット表記経由でアクセスできるようにすることができます。
nested_dict = {'val': 'nested works too'} mydict = dotdict(mydict) mydict.nested = dotdict(nested_dict)
これで、一連のドットを使用して、深くネストされた辞書の値にアクセスできるようになります。
mydict.nested.val # 'nested works too'
以上がPython でドット表記を使用して辞書のメンバーにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。