【发布时间】:2019-07-01 04:16:38
【问题描述】:
为什么类型检查在 Python 3 中不起作用?
我已经使用类型检查或提示完成了以下代码:
import typing
def hello(message: str):
print(type(message))
print(message)
hello('Hello!')
hello(1)
hello(1.1)
它产生有效的输出(但在 int 或 float 上没有错误)。
<class 'str'>
Hello!
<class 'int'>
1
<class 'float'>
1.1
为什么会这样?可能我不明白打字模块和 Python 提示。
【问题讨论】:
-
感谢您的所有帮助-所有答案都很好-很难选择一个最好的。现在我明白了,如果我做一些装饰器,提示可以用于验证,但通常它是提高可读性的好提示。很高兴看到 mypy 可以将此信息用于静态类型,它很快就会显示出新的机会。
-
相信你不用导入
typing。 -
documentation on this 非常具有误导性。通过使用像
runtime support for type hints这样的术语,它暗示这个功能实际做某事。它没有。它只是空的语法,允许作者以系统的方式记录他们的代码。
标签: python python-3.5