Работа с генераторами
Генераторы — функции с ключевым словом 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