Что такое генератор в Python?

Генератор в Python выдаёт значения постепенно и сохраняет состояние между обращениями. Функция с yield при вызове возвращает генератор, а не выполняется целиком сразу.

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

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

Генератор в Python выдаёт значения постепенно и сохраняет состояние между обращениями. Функция с yield при вызове возвращает генератор, а не выполняется целиком сразу.

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

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

Генератор в Python выдаёт значения постепенно и сохраняет состояние между обращениями. Функция с yield при вызове возвращает генератор, а не выполняется целиком сразу.

Итерация или next() возобновляет выполнение до следующего yield. Когда функция заканчивается, итератор сигнализирует StopIteration. Например, (x * x for x in range(3)) выдаст 0, 1 и 4 без предварительного построения списка результатов. Генератор обычно однопроходный: для повторного обхода создают новый. Экономия памяти зависит и от самого алгоритма — если внутри накоплен большой список, ленивый интерфейс его не устранит.

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

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

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

Подробнее