带冒号的函数参数

时间:2019-03-02 20:52:17

标签: python function

我刚刚遇到了这个功能:

def splitComma(line: str):
    splits = Utils.COMMA_DELIMITER.split(line)
    return "{}, {}".format(splits[1], splits[2])

我知道您可以用分隔参数,也可以在a = 39之类的参数内设置值,但我还没有看到像line:str这样的冒号。我已经在线检查了功能定义,但找不到类似的东西。这个冒号是什么意思?

2 个答案:

答案 0 :(得分:1)

这是一个功能注释;函数参数和返回值可以使用任意Python表达式标记。 Python本身会忽略注释(而不是保存注释),但是第三方工具可以使用它们。

在这种情况下,它旨在作为类型提示:mypy之类的程序可以静态分析您的代码(即,不运行它,而仅查看源代码本身)以确保仅{{1 }}值作为参数传递给str

更完整的注释还可以指定函数的返回类型:

splitComma

(请注意,最初,不假定函数注释具有任何特定的语义。这仍然是正确的,但如今压倒性的假设是注释提供类型提示。)

答案 1 :(得分:0)

这是静态分析工具用来检查类型的type annotation。它有助于在运行代码之前确保程序的正确性。