Обычная функция с yield возвращает генератор. Для генератора строк чаще подходит Iterator[str]; если важны send и return, используйте Generator[str, SendType, ReturnType].
Как называется объект, который возвращает функция с `yield`, и какая аннотация возвращаемого типа здесь подходит вместо `list[str]`?
Обычная функция с 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 — это другой протокол.