collections.namedtuple
名前付きタプル
名前付きタプルは、タプルの中のすべての場所に意味を割り当てて、より読みやすく自己解説的なコードを書けるようにします。
通常のタプルが利用される場所ならどこでも利用でき、場所に対するインデックスの代わりに名前を使ってフィールドにアクセスできるようになります。
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__ に空のタプルをセットしています。これにより、インスタンス辞書の作成を抑制してメモリ使用量を低く保つのに役立ちます。
参考