Что такое генераторы в Python? Как называется итератор, который под капотом использует yield?

Генератор — итератор, который выдаёт значения по мере запроса и сохраняет состояние между выдачами. Вызов функции с yield создаёт объект-генератор; это и есть ответ на вторую часть вопроса.

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

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

Генератор — итератор, который выдаёт значения по мере запроса и сохраняет состояние между выдачами. Вызов функции с yield создаёт объект-генератор; это и есть ответ на вторую часть вопроса.

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

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

Генератор — итератор, который выдаёт значения по мере запроса и сохраняет состояние между выдачами. Вызов функции с yield создаёт объект-генератор; это и есть ответ на вторую часть вопроса.

Тело генераторной функции начинает выполняться при получении очередного элемента, а yield приостанавливает его до следующего запроса. После завершения дальнейшая итерация заканчивается StopIteration. Генератор не хранит автоматически весь результат и обычно проходится один раз. Любой генератор является итератором, но итератор можно написать и без yield, реализовав протокол вручную.

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

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

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

Подробнее