我相信可以在 Python 中指定类型,如下所述:https://docs.python.org/3/library/typing.html
我正在使用以下根据上一页上的一个修改的简单函数:
def greeting(name: str) -> str:
print("From inside function.")
return 'Hello ' + name
正如预期的那样,当字符串作为参数发送时它会起作用。但是,当使用整数作为参数时,它仍然到达函数内部,并且在 return
处抛出错误。语句级别:
> print(greeting(55))
From inside function.
Traceback (most recent call last):
File "testing.py", line 16, in <module>
print(greeting(55))
File "testing.py", line 13, in greeting
return 'Hello ' + name
TypeError: Can't convert 'int' object to str implicitly
如果函数定义没有类型规范,则会发生相同的错误:
def greeting(name):
那么在函数头中进行类型指定有什么好处呢?
def greeting(name: str) -> str:
最佳答案
Python 是动态类型的;在运行时name
可以是任何值。函数注释仅提供类型提示,Python 本身会忽略它,但其他工具可以用于静态类型检查。也就是说,在运行时,greeting(4)
完全合法(但当您尝试评估 'Hello' + 4
时会导致运行时错误)。像 mypy 这样的工具但是,将标记 greeting(4)
作为错误,因为 4
事实上,不是 str
你说的name
应该采取。
将类型提示视为可解析和机器可检查的注释。
关于python - Python 函数中的类型规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55665488/