Od ''
a 0
jsou výchozí vrácené hodnoty str()
a int()
funkce, můžete použít následující kód k vložení těchto výchozích hodnot:
@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)
Bohužel z nějakého důvodu pomocí default
parametr field()
funkce nefunguje, jak bychom mohli očekávat (může to být chyba dataclasses
backport nebo nedorozumění...). Stále však můžete použít default_factory
specifikovat hodnoty odlišné od ''
a 0
pomocí 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)