Desde
''
e 0
são respectivamente os valores padrão retornados de str()
e int()
funções, você pode usar o seguinte código para inserir esses padrões:@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)
Infelizmente, por algum motivo, usando
default
parâmetro de field()
a função não funciona como esperávamos (pode ser um bug das dataclasses
backport ou um mal-entendido...). Mas você ainda pode usar o default_factory
para especificar valores diferentes de ''
e 0
usando 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)