Seit ''
und 0
sind jeweils voreingestellte Rückgabewerte von str()
und int()
Funktionen, könnten Sie den folgenden Code verwenden, um diese Standardwerte einzufügen:
@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)
Leider wird aus irgendeinem Grund default
verwendet Parameter von field()
funktioniert nicht wie erwartet (könnte ein Fehler der dataclasses
sein Backport oder ein Missverständnis...). Aber Sie können immer noch die default_factory
verwenden um Werte anzugeben, die sich von ''
unterscheiden und 0
mit 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)