Для создания генераторов в Python используется синтаксис с ключевым словом yield внутри функции.
python
Таблица, сравнивающая генератор с обычной функцией, возвращающей список:
| Особенность | Генератор (с yield) | Обычная функция (возвращающая список) |
|---|---|---|
| Возвращаемое значение | Объект-генератор (итератор) | Список |
| Память | Лентяйное вычисление (по требованию) | Все элементы создаются сразу |
| Состояние | Сохраняет состояние между вызовами | Каждое выполнение начинается с нуля |
| Итерация | Итерируется один раз | Можно итерировать несколько раз |