
Генератор — это функция, которая возвращает объект итератора.
Она выглядит как обычная функция, за исключением того, что она содержит выражение yield для создания серии значений, которые можно использовать в цикле for … in или которые можно извлечь по одному с помощью функции next().
Сверху самый простой пример функции генератора.
Любая функция содержащая ключевое слово yield, является функцией генератора.
Генераторы это отличный способ улучшить производительность кода, и они очень просты в использовании!
Когда вызывается функция генератора, то она не возвращает единственное значение, как это делает оператор return. Вместо этого она возвращает объект генератора, который поддерживает протокол итератора.
Разница между yield и оператором return заключается в том, что при достижении выхода, состояние выполнения генератора приостанавливается и локальные переменные сохраняются. При следующем вызове метода генератора next() функция возобновит свое выполнение.
Подробнее о генераторах вы можете почитать здесь.
Она выглядит как обычная функция, за исключением того, что она содержит выражение yield для создания серии значений, которые можно использовать в цикле for … in или которые можно извлечь по одному с помощью функции next().
Сверху самый простой пример функции генератора.
Любая функция содержащая ключевое слово yield, является функцией генератора.
Генераторы это отличный способ улучшить производительность кода, и они очень просты в использовании!
Когда вызывается функция генератора, то она не возвращает единственное значение, как это делает оператор return. Вместо этого она возвращает объект генератора, который поддерживает протокол итератора.
Разница между yield и оператором return заключается в том, что при достижении выхода, состояние выполнения генератора приостанавливается и локальные переменные сохраняются. При следующем вызове метода генератора next() функция возобновит свое выполнение.
Подробнее о генераторах вы можете почитать здесь.