我刚刚遇到了这个功能:
def splitComma(line: str):
splits = Utils.COMMA_DELIMITER.split(line)
return "{}, {}".format(splits[1], splits[2])
Run Code Online (Sandbox Code Playgroud)
我知道您可以用分隔参数,也可以在a = 39之类的参数中设置值,但我还没有看到像line:str这样的冒号。我已经在线检查了功能定义,但找不到类似的东西。这个冒号是什么意思?
这是一个功能注释;函数参数和返回值可以使用任意Python表达式标记。Python本身会忽略注释(而不是保存注释),但是第三方工具可以使用它们。
在这种情况下,它用作类型提示:诸如此类的程序mypy可以静态分析您的代码(即,不运行它,而仅查看源代码本身)以确保仅将str值作为参数传递给splitComma。
完整的注释还可以指定函数的返回类型:
def splitComma(line: str) -> str:
...
Run Code Online (Sandbox Code Playgroud)
(请注意,最初,不假定函数注释具有任何特定的语义。这仍然是正确的,但是如今,绝大多数的假设是注释提供了类型提示。)