0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】脱辞書型 dataclassとenumで入れ子構造のデータ管理

Posted at

はじめに

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の機能を活用することで、入れ子構造のデータのミスタイプを発生させることなく、管理することができる。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?