Как называется объект, который возвращает функция с `yield`, и какая аннотация возвращаемого типа здесь подходит вместо `list[str]`?

Обычная функция с yield возвращает генератор. Для генератора строк чаще подходит Iterator[str]; если важны send и return, используйте Generator[str, SendType, ReturnType].

Короткий ответ

Что ответить на собеседовании

Обычная функция с yield возвращает генератор. Для генератора строк чаще подходит Iterator[str]; если важны send и return, используйте Generator[str, SendType, ReturnType].

Подробный разбор

Ответ с пояснениями

Обычная функция с yield возвращает генератор. Для генератора строк чаще подходит Iterator[str]; если важны send и return, используйте Generator[str, SendType, ReturnType].

Например, def lines() -> Iterator[str]: ... обещает потребителю строки при обходе, не утверждая, что они уже собраны в list. Для простого yield без send и итогового значения подходит Generator[str, None, None]. Аннотации можно импортировать из collections.abc в поддерживаемых версиях. Для async def с yield нужны AsyncIterator или AsyncGenerator — это другой протокол.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее