PythonのDataclassでは、typing
モジュールのOptional
型を使用して、属性が存在する場合と存在しない場合の両方を表現することができます。この記事では、その方法について詳しく説明します。
Optional属性の定義
PythonのDataclassでOptionalな属性を定義するには、以下のようにします。
from dataclasses import dataclass
from typing import Optional
@dataclass
class CampingEquipment:
knife: bool
fork: bool
missing_flask_size: Optional[int] = None
この例では、missing_flask_size
はOptional[int]
型で定義されており、int
型の値またはNone
を持つことができます。この属性に値が設定されていない場合、そのデフォルト値はNone
になります。
Optional属性の利用
Optionalな属性を持つDataclassのインスタンスを作成するとき、その属性に値を設定しない場合、その属性の値はデフォルト値(この場合はNone
)になります。
kennys_stuff = {'knife': True, 'fork': True}
print(CampingEquipment(**kennys_stuff))
このコードを実行すると、CampingEquipment
のインスタンスが作成され、missing_flask_size
の値はNone
になります。
注意点
Optionalな属性を持つDataclassを定義するとき、その属性のデフォルト値を設定しないと、その属性に値を設定しない場合にエラーが発生します。そのため、Optionalな属性を持つDataclassを定義するときは、その属性のデフォルト値を設定することを忘れないようにしましょう。
以上、PythonのDataclassでOptionalな属性を扱う方法について説明しました。この情報がPythonのプログラミングに役立つことを願っています。