drw*_*wie 0 python type-hinting python-typing
我刚刚遇到了 Python 类型提示的奇怪行为。
>>> def x(y: int):
return y
>>> d=x('1')
>>> print(type(d))
<class 'str'>
>>> d
'1'
Run Code Online (Sandbox Code Playgroud)
当我将数字作为字符串传递到参数被转换为 int 的函数时,它仍然会生成字符串。我认为这种意想不到的行为的关键在于它不是铸造,而是暗示。但为什么它会这样呢?如果我传递“one”作为参数,它会给我一个 NameError。
小智 5
您没有在函数内投射任何内容,类型提示就是这样;提示。它们充当文档,不会将类型强制转换为其他类型。
为此,您需要
def x(y):
return int(y)
Run Code Online (Sandbox Code Playgroud)
现在要准确地输入提示这个函数
def x(y: str) -> int:
return int(y)
Run Code Online (Sandbox Code Playgroud)