【发布时间】:2021-12-01 02:51:43
【问题描述】:
我刚刚遇到了 Python 类型提示的一个奇怪行为。
>>> def x(y: int):
return y
>>> d=x('1')
>>> print(type(d))
<class 'str'>
>>> d
'1'
当我将一个数字作为字符串传递给参数被强制转换为 int 的函数时,它仍然会生成字符串。我认为这种意外行为的关键在于它不是投射,而是暗示。但为什么它会这样呢?如果我将 'one' 作为参数传递,它会给我一个 NameError。
【问题讨论】:
-
Python 不是编译语言,运行时不使用类型提示系统(除非您使用某些特定的第三方库)。这些类型提示允许您运行静态分析工具(例如 mypy)来确定您的代码在进行赋值时是否尊重函数/方法的联系并尊重变量类型。
-
这能回答你的问题吗? How to use type hints in python 3.6?
标签: python type-hinting python-typing