具有两个或多个返回参数的函数注释

时间:2019-05-07 02:05:42

标签: python python-3.x type-hinting

当我为返回一个参数的函数编写注释时,我没有问题。

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

但是,当我编写带有两个或多个参数的注释时,我的PyCharm会给我SyntaxError: invalid syntax

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

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

我的问题是:如何正确地为带有两个或多个返回参数的函数添加注释?

请在您的回复中加入PEP链接(如果有)。我在PEP 484PEP 3107寻找答案,但找不到答案。

1 个答案:

答案 0 :(得分:24)

使用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语句将值汇总为一个。