Урок 56. Генераторы

📁 Блок: Python Fundamentals / Итераторы и генераторы ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#def #yield #next #from #close #for #print #type #class #list #while #raise #in #range #if #break #isinstance #else #append #return #set #add #not #import #len

⚡ Кратко: суть урока

Генератор — это функция, которая использует yield вместо return, приостанавливая выполнение и сохраняя состояние между вызовами.

Ключевые конструкции: yield, yield from, close(), бесконечные генераторы.

Минимальный пример: def gen(): yield 1; yield 2.

Топ-3 ошибки: путать yield и return, забывать, что генератор одноразовый, не останавливать бесконечный генератор.

О чём этот урок

Генераторы — это особый вид итераторов, который создаётся функциями с ключевым словом yield. Они позволяют писать ленивые последовательности в императивном стиле: с циклами, условиями и переменными состояния.

Генераторы используются для обработки больших файлов, бесконечных потоков данных, распределения задач и реализации собственных протоколов итерации.

Что изучим

  • Отличие генераторных функций от обычных.
  • Как работает yield: приостановка и возобновление.
  • Генераторы с параметрами.
  • Бесконечные генераторы и способы их остановки.
  • Метод close() для принудительного завершения.
  • Конструкция yield from для делегирования.

Что повторить заранее

🎯 Что изучать дальше