चूंकि ''
और 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
का एक बग हो सकता है बैकपोर्ट या गलतफहमी ...) लेकिन आप अभी भी 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)