はじめに
dataclassとenumを組み合わせて、効率的に入れ子構造のデータ管理を行うことができる。
dataclassはデータ管理を目的としたクラスを定義するための機能である。
dataclasses --- データクラス — Python 3.9.12 ドキュメント
Python3.7からは「Data Classes」がクラス定義のスタンダードになるかもしれない - Qiita
enumは列挙型で識別子の集合を保持するための機能である。
enum --- 列挙型のサポート — Python 3.9.12 ドキュメント
enum 超まとめ python3.10 - Qiita
これらの機能を組み合わせることにより、
「入れ子構造のデータ」を列挙型にて管理することができる。
例えば、入れ子構造のハイパーパラメータを管理したいときに、役立てることができる。
【実装】dataclassとenumでの実装例
dataclassとenumにて入れ子構造を定義した場合、
既に属性の定義が済んでいるため、エディタのコード補完により各要素にアクセスが容易になる。
【比較】 辞書型での入れ子構造のデータの管理との比較
同じことを辞書型で実現する場合、辞書のキー名を取得する必要性があり、手間が発生する。
また、dataclassの機能を活用することで、入れ子構造のデータのミスタイプを発生させることなく、管理することができる。