Работа с генераторами

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

Генератор — итератор, который можно итерировать только один раз.

Генератор, в отличие от итератора, не хранит последовательность в памяти.

Еще сложные понятия около генераторов

Collection comprehensions

Это генераторы коллекций — синтаксический сахар, позволяющий на лету генерить коллекции

Generator object

Или generator iterator — это функция-генератор, которая один раз отдаст свои объекты (объекты итератора) и все

Создание генератора

Через функцию

def get_numbers(start: int = 0, end: int = 1000):
   while start < end:
      yield start
      start += 1      

Через генератор-выражение

iterator = (num for num in range(1000))

Last updated