Введите подсказку для itertools.product не знает длину элементовPython

Программы на Python
Ответить
Anonymous
 Введите подсказку для itertools.product не знает длину элементов

Сообщение Anonymous »

Я добавляю подсказки типов в свой старый код. Однако я обнаружил «проблему», которую не знаю, как решить. У меня есть функция следующего вида:

Код: Выделить всё

def f(x: tuple[tuple[int, int], ...]):
...
То есть он принимает один аргумент, который представляет собой кортеж пар целых чисел. В какой-то момент кода я вызываю эту функцию, передавая в качестве аргумента выходные данные itertools.product

Код: Выделить всё

from itertools import product

x = tuple(product(range(10), repeat=2))
f(x)
Код работает без проблем, поскольку x представляет собой кортеж из 100 пар целых чисел. Однако mypy жалуется на ошибку

Код: Выделить всё

error: Argument 1 to "tuple" has incompatible type "product[tuple[int, ...]]"; expected "Iterable[tuple[int, int]]"  [arg-type]
Есть ли способ решить эту проблему?


Подробнее здесь: https://stackoverflow.com/questions/792 ... f-elements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»