ホームページ >バックエンド開発 >Python チュートリアル >Python でドット表記を使用して辞書のメンバーにアクセスするにはどうすればよいですか?

Python でドット表記を使用して辞書のメンバーにアクセスするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-16 12:06:03918ブラウズ

How Can You Access Dictionary Members Using Dot Notation in Python?

辞書メンバーへのドット表記アクセス

従来のインデックス付け (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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。