Что такое генератор, как он работает, в чём его оптимальность и как отличить его в коде?

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

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

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

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

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

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

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

Вызов функции-генератора возвращает объект итератора, не выполняя сразу весь обход. Next возобновляет выполнение до очередного yield или завершения. Это удобно для больших потоков: не требуется хранить все результаты одновременно. Но генератор одноразовый и может удерживать ресурсы и локальные объекты. Если затем вызвать list(), все значения всё равно будут собраны в память.

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

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

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

Подробнее