У меня есть функция:

def func() -> tuple(str, list(str)):
    var_a = "four"
    var_b = ["one","two","three"]
    return var_a, var_b

И когда я его вызываю, выдает следующую ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'type' object is not iterable

Я тоже пробовал вот так:

from typing import Tuple
def func() -> Tuple[str, list(str)]:
    var_a = "four"
    var_b = ["one","two","three"]
    return var_a, var_b

И я столкнулся с той же ошибкой.

Как получить соответствующую аннотацию типа возвращаемого значения для этого случая?

1
raghavsikaria 24 Июл 2020 в 13:46
1
Вам нужно использовать типы typing для списка кортежей и, list(str) – это минимально воспроизводимый пример.
 – 
jonrsharpe
24 Июл 2020 в 13:48

2 ответа

Лучший ответ

Используя List[str], общая версия list:

from typing import List, Tuple

def func() -> Tuple[str, List[str]]:
    var_a = "four"
    var_b = ["one","two","three"]
    return var_a, var_b
3
Brad Solomon 24 Июл 2020 в 13:48

Вместо скобок попробуйте использовать квадратные скобки ([ и ]):

def func() -> tuple[str, list[str]]:
    var_a = "four"
    var_b = ["one", "two", "three"]
    return var_a, var_b
0
Joao-3 24 Сен 2022 в 23:02