dataclassesライブラリーとは初期値を簡単に設定できる
class クラス名:
フィールド名: 型 = 初期値
...
@dataclassのオプションで、データクラスの機能を設定できます。
データクラスのフィールドは、「フィールド名: 型 = 初期値」のように記述します。
初期値を指定しない場合は、「フィールド名: 型」とだけ記述します。
初期値のあるフィールドの後に、初期値のないフィールドは書けません。
Personクラスのオブジェクトは、以下の機能を持ちます。
printなどで、Person(name='Alice', age=20)のように表示されます(通常のクラスでは<__main__.Person object at 0x…>のようになります)。
2つのオブジェクトの比較ができます。比較の結果はタプルの場合と同じです。すなわち、第1キーをnameで、第2キーをageで比較します。
データクラスの作成は、以下のようにします。
from dataclasses import dataclass
@dataclass(order=True)
class Person:
name: str
age: int = 20
※指定するのは:であるので注意
nameは初期値を持たないので、作成時に必ず指定します。
ageを省略すると、20になります。
p1 = Person('Alice')
p2 = Person('Bob', 18)
print(p1, p2)
print(p1 < p2)
https://pyq.jp/quests/lib_dataclasses/try/