如何在python3的数据类中声明类型?

2024-09-28 03:23:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python3的新的dataclass特性,它允许指定类字段的类型。在这个例子中,field2的类型应该是List[int],我向它传递了一个List[str]。这段代码运行时没有失败,我想知道是否有一种(自动的)方法使代码失败(即使用断言等),如果错误的类型传递给类。在

from dataclasses import *
import typing
@dataclass
class C:
    field1: str
    field2: typing.List[int]

if __name__ == '__main__':
    x = C('a',['a','b'])
    print(repr(x))

Tags: 方法代码importtyping类型特性python3list
1条回答
网友
1楼 · 发布于 2024-09-28 03:23:52

数据类使用type hints,在运行时不检查。可以使用静态类型分析工具(如^{})检查它们。在

数据类不打算提供运行时类型检查字段。您只不过是为生成的类定义字段,而类型暗示语法使这项工作变得容易,还提供了类型提示。在

如果只使用类型提示而不使用mypy之类的类型检查器工具,那么至少现在已经记录了预期的类型。另外,一些Python ide(如PyCharm和wingede)可以提供更智能的自动完成提示。在

我不会尝试在运行时强制执行类型提示,即使技术上您可以实现这样的功能。你真的不想测试列表中的每一个元素是否都是整数。这只是在浪费CPU时间,在这种情况下,您只想编写一个不会产生如此无效列表的代码。静态类型检查的目的是在不增加运行时开销的情况下提供后者。在

相关问题 更多 >

    热门问题