Depuis ''
et 0
sont respectivement les valeurs renvoyées par défaut de str()
et int()
fonctions, vous pouvez utiliser le code suivant pour insérer ces valeurs par défaut :
@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)
Malheureusement, pour une raison quelconque, utiliser default
paramètre de field()
la fonction ne fonctionne pas comme on pourrait s'y attendre (peut-être un bogue des dataclasses
rétroportage ou un malentendu...). Mais vous pouvez toujours utiliser le default_factory
pour spécifier des valeurs différentes de ''
et 0
en utilisant 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)