Подсказка типа, чтобы вернуть итерируемый размер того же типа, что и входные данные?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Подсказка типа, чтобы вернуть итерируемый размер того же типа, что и входные данные?

Сообщение Anonymous »

Следующий код работает, но в зависимости от того, как я исправлю подсказку типа, на это будет жаловаться либо PyCharm, либо mypy. Я пробовал Sized, Iterable и Collection для типа S.

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

T = TypeVar("T")
S = TypeVar("S", bound=Collection[T])

def limit(i: S, n: int) -> S:
"""
Limits the size of the input iterable to n.  Truncation is randomly chosen.
"""
if len(i)  len(i), верните i вместо выдачи ошибки
[*]Тип коллекции вывода должен быть идентичен входному.  список[интервал | str] in = list[int | стр] выход; set[float] in = set[float] out.
[/list]
Если что-то подобное уже есть в стандартной библиотеке, Я воспользуюсь этим. 

Подробнее здесь: [url]https://stackoverflow.com/questions/79036744/type-hinting-to-return-the-same-type-of-sized-iterable-as-the-input[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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