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(...)
语句要容易得多。
答案 0 :(得分:1)
简而言之:即使您包含类型提示,Python也不会检查您的类型。
引入了类型提示,以提供静态类型检查的选项。这可以帮助您在运行代码之前消除许多错误。但是您将需要使用mypy之类的静态类型检查器来执行此操作。 Python仍然是一种动态类型化的语言,因此它本身不会进行任何类型检查。