\

Pythonのdataclassは、特殊メソッドを自動的に生成し、ユーザー定義のクラスに追加するデコレータとして機能します。これにより、__init__()__repr__()などのメソッドを手動で書く必要がなくなります。

from dataclasses import dataclass

@dataclass
class DataClass:
    name: str
    num: int

上記のように、@dataclassデコレータを使用してクラスを定義すると、namenumというフィールドを持つDataClassというクラスが作成されます。このクラスのインスタンスは、以下のように作成できます。

dc = DataClass('tom', 3)
print(f'私の名前は{dc.name}、IDは{dc.num}です。')  # 私の名前はtom、IDは3です。

dataclassの利点は、self.name = nameなどを繰り返さなくてもよく、記述量が低下し、かつアノテーションがついているので、どういう役割のクラスなのかがわかり、可読性が向上します。

また、dataclassはデフォルト値を設定することも可能です。

@dataclass
class DataClass:
    name: str = 'rebeca'
    num: int = 4

上記のようにデフォルト値を設定した場合、引数なしでインスタンスを作成することができます。

dc = DataClass()
print(f'私の名前は{dc.name}、IDは{dc.num}です。')  # 私の名前はrebeca、IDは4です。

以上がPythonのdataclassの基本的な使い方となります。更に詳しく知りたい場合は、公式ドキュメントを参照してください。

投稿者 admin

コメントを残す

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