''
以降 および0
それぞれstr()
のデフォルトの戻り値です およびint()
関数の場合、次のコードを使用してそれらのデフォルトを挿入できます。
@dataclass
class Person:
id: int = None
name: str = field(default_factory=str)
age: int = field(default_factory=int)
hobbies: List[str] = field(default_factory=list)
birthday: datetime = field(default_factory=datetime)
残念ながら、何らかの理由で、default
を使用しています field()
のパラメータ 関数が期待どおりに機能しません(dataclasses
のバグである可能性があります) バックポートまたは誤解...)。ただし、default_factory
は引き続き使用できます。 ''
とは異なる値を指定する および0
lambda
を使用する :
@dataclass
class Person:
id: int = None
name: str = field(default_factory=lambda: 'john doe')
age: int = field(default_factory=lambda: 77)
hobbies: List[str] = field(default_factory=list)
birthday: datetime = field(default_factory=datetime)