Что такое генератор и чем он отличается от обычной функции?
Уровень: Middle
Ответ
Генератор – это функция, в которой используется ключевое слово `yield`. Такая функция при вызове возвращает объект-генератор, который выдаёт значения по одному (на каждом вызове next). Генератор помнит свой контекст между выдачами (замораживается на yield). В отличие от обычной функции, генератор не вычисляет все результаты сразу, а генерирует последовательно по запросу. Это позволяет эффективно работать с большими последовательностями, не держа их целиком в памяти.