Desde ''
y 0
son respectivamente valores devueltos predeterminados de str()
y int()
funciones, podría usar el siguiente código para insertar esos valores predeterminados:
@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)
Desafortunadamente, por alguna razón, usar default
parámetro de field()
la función no funciona como esperábamos (podría ser un error de las dataclasses
backport o un malentendido...). Pero aún puede usar default_factory
para especificar valores diferentes de ''
y 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)