【发布时间】:2021-07-28 10:06:36
【问题描述】:
我最近在检查类型提示,在阅读了一些理论之后,我尝试了一个简单的示例,如下所示
def myfun(num1: int, num2: int) -> int:
return str(num1) + num2
a = myfun(1,'abc')
print(a)
# output -> 1abc
在这里您可以看到我已经定义了 int 类型的 num1 和 num2,即使在将 num2 值作为字符串传递之后,它也不会产生任何错误。
该函数还应该返回 int 类型值,但它不会抱怨返回字符串类型值。
有人能解释一下这里出了什么问题吗?
【问题讨论】:
-
Python 不检查任何类型注释。如果您只是正常运行文件,则提示仅供读者使用(您也可以在代码中访问类型提示,例如使用typing.get_type_hints)。要真正使用类型提示,请使用像 MyPy 这样的工具,它是一个静态分析器。