Перейти к содержимому
14 / 15

Генераторы и `yield` в Python: чем они отличаются от обычных функций?

Generator — функция с yield, которая возвращает итератор: вычисление отложено до запроса следующего значения. В отличие от обычной функции, тело не выполняется при вызове — сначала возвращается генератор-объект, дальше каждый next() доходит до следующего yield. Это даёт ленивую генерацию, экономию памяти на больших последовательностях и поддержку бесконечных потоков. Аналог в JS — function* + yield.

Генераторы и `yield` в Python: чем они отличаются от обычных функций? | JScriptiser