Pythonのdataclass
は、データを保持するために特別に作られた通常のPythonクラスで、@dataclass
デコレータが付いています。この記事では、Pythonのdataclass
について詳しく説明します。
Dataclassとは何か
dataclass
は、クラス変数が型注釈を持つクラスを調べるdataclass()
デコレータを使用して定義されるフィールドです。例えば、以下のようなコードがあります:
from dataclasses import dataclass
@dataclass
class DataClass:
name: str
num: int
この場合、DataClass
のインスタンスを作成するときに、name
とnum
の値を指定することができます:
dc = DataClass('tom',3)
print(f'私の名前は{dc.name}、IDは{dc.num}です。')
出力は:私の名前はtom、IDは3です。
となります。
Dataclassの利点
dataclass
の利点は、self.name = name
などを繰り返さなくてもよく、記述量が低下し、かつアノテーションがついているので、どういう役割のクラスなのかがわかり、可読性が向上します。
Dataclassの特殊なコンストラクタ
dataclass
では、__post_init__
メソッドを設定することで、コンストラクタが発動した後(データ格納後)、そのデータを使ってプログラムを実行することができます。
from dataclasses import dataclass
@dataclass
class DataClass:
name: str
num: int
def __post_init__(self):
print(f'私の名前は{self.name}、IDは{self.num}です。')
dc = DataClass('tom',3)
出力は:私の名前はtom、IDは3です。
となります。
以上がPythonのdataclass
についての基本的な説明です。この機能を使うことで、Pythonでのデータ管理がより簡単になります。