Siden ''
og 0
er respektive standard returnerede værdier af str()
og int()
funktioner, kan du bruge følgende kode til at indsætte disse standardindstillinger:
@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)
Desværre, af en eller anden grund, ved at bruge default
parameter for field()
funktionen virker ikke, som vi kunne forvente (kan være en fejl i dataclasses
backport eller en misforståelse...). Men du kan stadig bruge default_factory
for at angive værdier, der er forskellige fra ''
og 0
ved hjælp af 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)