問題一覧に戻る
上級高度なパターン
問題106: dataclassデコレータ

@dataclassデコレータは、クラスに自動的に__init__、__repr__、__eq__などの特殊メソッドを生成します。フィールドには型ヒントを付け、デフォルト値も設定できます。これにより、データを保持するクラスを簡潔に定義でき、ボイラープレートコードを大幅に削減できます。

# dataclassデコレータ
from dataclasses import

# データクラスを定義

class Person:
name: str
age: int
email: str = "unknown@example.com"

# データクラスを使用
p1 = Person("Alice", 30)
p2 = Person("Bob", 25, "bob@example.com")
print(p1)
print(p1 p2)