【发布时间】:2020-03-18 09:48:13
【问题描述】:
在这段代码中:
import dataclasses
@dataclasses.dataclass
class MyClass:
value: str
obj = MyClass(value=1)
数据类MyClass 使用不符合value 类型的值进行实例化。
是否有一种简单的方法(使用装饰器、dataclass 装饰器或库中的参数)强制字段的类型,以便我示例中的最后一行引发ValueError 或类似的东西?以这种方式强制执行类型是否有很大的缺点?
【问题讨论】:
-
Python 没有输入,也不会输入。如果您想使用类型检查,请尝试运行
mypy。 -
@Giacomo 并不意味着您根本不能在运行时强制执行类型……
-
@deceze 意思是你要自己实现。 OP 专门要求使用“单线/开关”之类的东西来打开类型检查。这不会发生。
-
为此我创建了一个小型 Python 库:github.com/tamuhey/dataclass_utils 这个库可以应用于包含另一个数据类(嵌套数据类)和嵌套容器类型(如
Tuple[List[Dict...)的数据类跨度>
标签: python python-3.x python-dataclasses