Генераторы



Обычные функции возвращают только одно-единственное значение (или ничего).



Генераторы могут порождать (yield) множество значений одно за другим, по мере необходимости. 

Генераторы отлично работают с перебираемыми объектами и позволяют легко создавать потоки данных.



Для объявления генератора используется специальная синтаксическая конструкция: function*, которая называется «функция-генератор».

При вызове функции-генератор возвращается специальный объект, так называемый «генератор», для управления её выполнением.



Основным методом генератора является next(). При вызове он запускает выполнение кода до ближайшей инструкции yield <значение>. 

По достижении yield выполнение функции приостанавливается, а соответствующее значение – возвращается во внешний код.



#генераторы #итерация