アクセサー メソッドは、複雑なデータ構造からデータを取得する便利な方法を提供し、直感的なオブジェクト指向のナビゲーションを可能にします。ただし、Python のネイティブ辞書には本質的にこの機能がありません。
問題: ネストされた Python 辞書をオブジェクトのような構造に変換して、属性ベースのデータ取得を可能にするにはどうすればよいですか?
答え:
Namedtuples の使用 (Python 2.6 以降)
Python の新しいバージョン (2.6 以降) の場合、namedtuple はエレガントなソリューション。これらは、名前付きフィールドを持つ不変のカスタム データ型を表します。
from collections import namedtuple MyStruct = namedtuple('MyStruct', 'a b d') s = MyStruct(a=1, b={'c': 2}, d=['hi']) print(s.a, s.b['c'], s.d[0]) # Output: 1 2 hi
カスタム Struct クラスの使用
または、次の動作を模倣するカスタム Struct クラスを作成できます。オブジェクト:
class Struct: def __init__(self, **entries): self.__dict__.update(entries) args = {'a': 1, 'b': 2} s = Struct(**args) print(s.a, s.b) # Output: 1 2
以上が属性ベースのデータ取得のために、ネストされた Python 辞書をオブジェクトのような構造に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。