collections.namedtuple
名前付きタプル
https://docs.python.org/ja/3/library/collections.html#namedtuple-factory-function-for-tuples-with-named-fields
名前付きタプルは、タプルの中のすべての場所に意味を割り当てて、より読みやすく自己解説的なコードを書けるようにします。
通常のタプルが利用される場所ならどこでも利用でき、場所に対するインデックスの代わりに名前を使ってフィールドにアクセスできるようになります。
code:namedtuple_example.py
>> Point = namedtuple('Point', 'x', 'y')
>> p = Point(11, y=22)
>> p.x + p.y
名前付きタプルは csv や sqlite3 モジュールが返すタプルのフィールドに名前を付けるときにとても便利です:
組み込みのmapでnamedtupleに変換する例
for emp in map(EmployeeRecord._make, csv.reader(open("employees.csv", "rb"))):
_make
既存の sequence や Iterable から新しいインスタンスを作るクラスメソッド.
_asdict
_replace
**演算子で辞書をnamedtupleに変換できる!
Point(**{'x': 11, 'y': 22})
定義したnamedtupleを継承する例
このサブクラスは __slots__ に空のタプルをセットしています。これにより、インスタンス辞書の作成を抑制してメモリ使用量を低く保つのに役立ちます。
👉Pythonの__slots__
参考
名前付きタプルに型ヒントを追加する方法については、 typing.NamedTuple を参照してください。
Python types.SimpleNamespace
dataclasses