\

Pythonのdataclassesモジュールは、データを格納するためのクラスを定義し、データ格納クラスのための様々な機能を含んだモジュールです。このモジュールはPython3.7から追加されました。

dataclassesモジュールを用いたデータ格納クラスを作成するために必要なことは、基本的に以下の3つです。

  1. dataclasses.dataclass デコレータをクラス宣言に付与
  2. データフィールドを クラス変数として記述する
  3. データフィールドのクラス変数に 型アノテーションを記述する

例えば以下のようにデータクラス Person を定義します。

from dataclasses import dataclass

@dataclass
class Person():
    first_name: str
    last_name: str
    age: int

このようにdataclassを定義すると、以下のような __init__() 関数がデータクラスに対して自動で作成されます。

def __init__(self, first_name: str, last_name: str, age: int):
    self.first_name = first_name
    self.last_name = last_name
    self.age = age

クラス変数定義の後ろに”= value”とすることで初期値を設定することが出来ます。str, intなどの場合はそのまま”=”の後に空文字など指定すれば良いですが、listやset、dictなどのデフォルト値を設定する場合は dataclasses.field を使用する必要があります。

例えばlist型のフィールドに初期値を設定する場合は dataclasses.field 関数の引数に default_factory を指定する必要があります。

from dataclasses import dataclass, field

@dataclass
class Person():
    first_name: str = ''
    last_name: str = ''
    age: int = 0
    family: list = field(default_factory=list)

このようにPythonのdataclassesモジュールを使用すると、データ格納クラスの定義がシンプルになり、初期値の設定も容易になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です