我想初始化python数据类对象,即使没有实例变量传递到它,并且我们没有向参数添加默认值
@dataclass
class TestClass:
paramA: str
paramB: float
paramC: str
obj1 = TestClass(paramA="something", paramB=12.3)
在这里,它不允许我创建对象&它会抛出
TypeError: __init__() missing 1 required positional argument: 'paramC'
我可以使用默认值来解决此错误。
paramC: str = None
# OR
paramC: str = ""
但我不想为paramC使用默认值,因为我想要一个场景,如果我们传递paramC,那么只有它应该在对象中,否则它不应该在那里。因此,如果我们在这里使用默认值,paramC将始终存在于值为None或空字符串的对象中。
如果在初始化过程中没有传递参数,我希望跳过参数的初始化。
我想你可能想要这样的答案
它使用make_dataclass创建一个动态对象
您可以使用可选类型。
from typing import Optional
@dataclass
class TestClass:
paramA: str
paramB: float
paramC: Optional[str] = None
obj1 = TestClass(paramA="something", paramB=12.3)