Python 中的“->”是什么意思?

25

今天我看到了一个Python示例,它使用->,例如这是我所看到的:

spam = None
bacon = 42
def monty_python(a:spam,b:bacon) -> "different:":
    pass

那段代码在做什么?我不太确定,我从没见过这样的代码,我真的不太明白。

 a:spam,b:bacon  

我正在做一件事情,能有人为我解释一下吗?我尝试了谷歌搜索“Python中->的含义”,但是没有找到好的结果。

2个回答

29
这是用于返回类型的函数注释。在代码中,注释并不起作用,它们只是为了帮助用户进行代码完成(根据我的经验)。
这是关于它的PEP
让我演示一下,我所说的"注释在代码中没有任何作用"的意思。以下是一个例子:
def fun(a: str, b: int) -> str:
    return 1

if __name__ == '__main__':
    print(fun(10, 10))
以上代码将不会出现任何错误。但是,正如你所见,第一个参数应该是一个string,第二个参数是一个int。但是,在我的IDE中这只是一个问题,代码运行得很好:

哦,我明白了,那很有趣,谢谢你为我澄清。顺便问一下,你在用什么编辑器? - ruler
1
PyCharm 3.0 是由Jetbrains开发的。但是其他集成开发环境也提供了这种功能。你可以免费尝试PyCharm。我认为PyDev也提供了这个功能。 - Games Brainiac
你用的是什么集成开发环境?非常不错! - G M
请看我之前的评论 :) - Games Brainiac
不错,我不知道在Python中你可以这样做。我猜Python变得越来越面向对象了。 - user1786283

7

它们是函数注释。它们本身不会做任何事情,但可以用于文档编写或与元编程结合使用。


只是为了明确,这些仅在Python3中可用,而不是在Python 2中! - oz123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接