具有两个或更多 return 个参数的函数注释

Function annotation with two or more return parameters

当我为一个 return 有一个参数的函数编写注释时,我没有遇到任何问题。

def func() -> str:
    return "ok"

但是,当我用两个或更多参数编写注释时,我的 PyCharm 给了我 SyntaxError: invalid syntax

def func() -> str, str:
    return "ok - 1", "ok - 2"

我认为参数可以与 tuple 组合,但我认为这不是最好的方法。

我的问题是:如何使用两个或更多 return 参数正确注释函数?

请在您的回复中包含 PEP link(如果有)。我在 PEP 484 and PEP 3107 寻找答案,但没找到。

使用typing.Tuple:

from typing import Tuple

def func() -> Tuple[str, str]:
    return 'a', 'b'

这是合适的,因为从概念上讲,您实际上返回的是包含这些值的单个 tuple。注:

print(type(func()))

输出:

<class 'tuple'>

除了空的tuple(()),parentheses are not necessary to define a tuple,这意味着'a', 'b'被创建为一个tuple,而不是被分开return 语句将值合二为一。