具有两个或更多 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 参数正确注释函数?
使用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
语句将值合二为一。
当我为一个 return 有一个参数的函数编写注释时,我没有遇到任何问题。
def func() -> str:
return "ok"
但是,当我用两个或更多参数编写注释时,我的 PyCharm 给了我 SyntaxError: invalid syntax
。
def func() -> str, str:
return "ok - 1", "ok - 2"
我认为参数可以与 tuple
组合,但我认为这不是最好的方法。
我的问题是:如何使用两个或更多 return 参数正确注释函数?
使用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
语句将值合二为一。