Функция аннотации с двумя или более возвращаемыми параметрами
Когда я пишу аннотацию для функции, которая возвращает один параметр, у меня нет проблем.
def func() -> str:
return "ok"
Однако, когда я пишу аннотацию с двумя или более параметрами, мой PyCharm дает мне SyntaxError: invalid syntax
.
def func() -> str, str:
return "ok - 1", "ok - 2"
Я думаю, что параметры можно объединить с помощью tuple
, но я не думаю, что это лучший способ сделать это.
Мой вопрос: как я могу правильно аннотировать функцию с двумя или более возвращаемыми параметрами?
Пожалуйста, включите ссылку PEP, если таковая имеется, в ваш ответ. Я искал ответ в PEP 484 и PEP 3107 и не мог его найти.
Ответы
Ответ 1
Используйте typing.Tuple
:
from typing import Tuple
def func() -> Tuple[str, str]:
return 'a', 'b'
Это уместно, потому что концептуально вы фактически возвращаете один tuple
содержащий эти значения. Замечания:
print(type(func()))
Выход:
<class 'tuple'>
За исключением пустого tuple
(()
), в скобках нет необходимости определять tuple
, что означает, что 'a', 'b'
создаются как tuple
, а не как отдельные значения, собранные в единое целое с помощью оператора return
.