什么时候应该在Python中使用输入和返回类型提示?


>>> def greeting(name: str) -> str:
...     return 'Hello ' + name
...
>>> greeting("abc")
'Hello abc'
>>> def greeting(name):
...   return 'Hello2 ' + name
...
>>> greeting("abc")
'Hello2 abc'

我看到不管输入和返回类型是否指定,代码总是工作的。文档没有解释什么时候应该使用类型,什么时候不应该使用类型。有人能解释清楚吗?

https://docs.python.org/3/library/typing.html

Python是一种动态类型语言,因此您放置的提示只是为了让人们更容易理解调用该函数时使用的类型。代码将以任何一种方式工作。在静态类型语言中,您必须指定类型,如果您使用任何其他类型输入值,则函数将而不是工作。

简单地说,如果在代码中使用所提供/返回的变量,您应该指定输入或输出的类型,并且希望拥有包含类型所具有的所有方法:

def greeting(name: str) -> str:
return 'Hello ' + name
_str = greeting('you')

_str变量将为您提供键入_str时的所有方法。通过你的想法,以及当你添加点到名称。

类型别名对于简化复杂类型签名很有用。这有助于捕获逻辑错误:

请不要对解释太严格,我已经尽力用人类的语言来解释了)

除了Vova的回答之外,由于Python的性质,解释器不需要提及参数或返回类型。尽管如此,添加类型提示始终是一个很好的实践,无论是作为提示还是在文档字符串中,这样其他开发人员以及将来的您都可以很容易地理解并在需要时更改代码

最新更新