mypy:执行期间引发TypeError

时间:2018-07-16 05:18:54

标签: python python-3.x mypy

上下文

mypy非常适合检查类型是否正确处理。

# example.py

def test(string: str):
    return str

if __name__ == '__main__':
    test('19')
    test(19)

这将在第一种情况下起作用,但不适用于第二种情况。

>> mypy example.py
example.py:6: error: Argument 1 to "test" has incompatible type "int"; expected "str"

但是,只需通过

>> python example.py

不会引发任何错误。

问题

在实际执行代码时,是否可以在python中使用可选的静态类型来引发错误?

我希望使用此在unittests中检查变量类型,这比拥有各种if not isinstance(...)语句要容易得多。

1 个答案:

答案 0 :(得分:1)

简而言之:即使您包含类型提示,Python也不会检查您的类型。

引入了

类型提示,以提供静态类型检查的选项。这可以帮助您在运行代码之前消除许多错误。但是您将需要使用mypy之类的静态类型检查器来执行此操作。 Python仍然是一种动态类型化的语言,因此它本身不会进行任何类型检查。