正在初始化python数据类对象,而不传递实例变量或默认值



我想初始化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)

最新更新