Генератор Python — это специальный тип функции, которая производит последовательность значений лениво — то есть генерирует одно значение за раз вместо того, чтобы вычислять и хранить все значения сразу. Это делает генераторы очень экономными по памяти, особенно при работе с большими наборами данных.
yieldВместо использования return генератор использует yield для производства значений. Каждый раз, когда вызывается yield:
def countdown(n):
while n > 0:
yield n
n -= 1
Вызов countdown(3) не запускает функцию немедленно — он возвращает объект генератора. Значения производятся только при итерации:
for value in countdown(3):
print(value) # выводит 3, 2, 1
__iter__ и __next__Функция-генератор возвращает объект генератора сразу же при вызове, а значения производятся только при итерации по генератору.
Новый — ещё не проверен сообществом
Вы