25

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

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

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

 a:spam,b:bacon  

正在做任何一个,有人可以为我解释一下吗?我用谷歌搜索,“在 python 中做什么 -> 做”,但没有找到好的搜索结果。

4

2 回答 2

29

它是返回类型的函数注释。annotations在代码中什么都不做,他们在那里帮助用户完成代码(根据我的经验)。

这是它的PEP

让我演示一下,我所说的“注释在代码中什么都不做”是什么意思。这是一个例子:

def fun(a: str, b: int) -> str:
    return 1

if __name__ == '__main__':
    print(fun(10, 10))

上面的代码将运行没有任何错误。但如您所见,第一个参数应该是 a string,第二个参数应该是 a int。但是,这只是我的 IDE 中的一个问题,代码运行得很好:

在此处输入图像描述

于 2013-10-20T16:13:51.510 回答
7

它们是功能注释。它们自己并没有真正做任何事情,但它们可以用于文档或与元编程结合使用。

于 2013-10-20T16:12:41.930 回答