От ''
и 0
са съответно върнатите по подразбиране стойности на str()
и int()
функции, можете да използвате следния код, за да вмъкнете тези настройки по подразбиране:
@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)
За съжаление, по някаква причина използвам default
параметър на field()
функцията не работи както бихме могли да очакваме (може да е грешка на dataclasses
backport или недоразумение...). Но все още можете да използвате default_factory
за да посочите стойности, различни от ''
и 0
използвайки 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)