初始化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 或空字符串。
如果在初始化期间未传递参数,我想跳过参数的初始化。
I want to initialize python dataclass object even if no instance variables are passed into it and we have not added default values to the param
@dataclass
class TestClass:
paramA: str
paramB: float
paramC: str
obj1 = TestClass(paramA="something", paramB=12.3)
Here it won't allow me to create the object & it will throw
TypeError: __init__() missing 1 required positional argument: 'paramC'
I can use the default value to resolve this error.
paramC: str = None
# OR
paramC: str = ""
But I don't want to use a default value for paramC because I want a scenario such that if we pass paramC then only it should be there in the object else it should not be there. So if we use default value here paramC will always be there in the object with value None OR empty string.
I would like to skip initialization of a param if it is not passed during initialization.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想你可能想要像这个答案这样的东西,
它使用make_dataclass 动态创建对象
I think you may want something like this answer
Which uses make_dataclass to create an object on the fly
您可以使用可选类型。
You can use Optional typing.