Встречается на собеседованиях • сегодня

Как описывается тайпинг генератора

Генераторы в Python можно типизировать с помощью Generator[YieldType, SendType, ReturnType] из модуля typing.

  • YieldType - тип значений, которые генератор будет yield'ить
  • SendType - тип значений, которые можно передавать в генератор через send()
  • ReturnType - тип значения, которое генератор вернет при завершении

Пример:

python
from typing import Generator

def count_up_to(n: int) -> Generator[int, None, None]:
    i = 1
    while i <= n:
        yield i
        i += 1

Если генератор только возвращает значения и не поддерживает send()/return, можно использовать более короткую запись:

python
from collections.abc import Iterator

def squares(n: int) -> Iterator[int]:
    for i in range(n):
        yield i ** 2

Для асинхронных генераторов используется AsyncGenerator[YieldType, SendType].

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы