Встречается на собеседованиях • сегодня

Как происходит итерация генератора

Генератор в Python — это функция, которая использует ключевое слово yield вместо return. При вызове она возвращает объект-генератор, который можно итерировать.

Итерация происходит так:

  1. При первом вызове next() выполнение начинается с начала функции и продолжается до первого yield.
  2. Функция приостанавливается, возвращая значение после yield.
  3. При следующем вызове next() выполнение возобновляется с места последней паузы и продолжается до следующего yield.
  4. Если генератор завершается (достигает return или конца функции), вызывается StopIteration.

Пример:

python
def count_up_to(n):
    i = 1
    while i <= n:
        yield i
        i += 1

gen = count_up_to(3)
print(next(gen))  # 1
print(next(gen))  # 2
print(next(gen))  # 3
# next(gen) вызовет StopIteration

Генераторы ленивы — значения вычисляются по требованию, что экономит память.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы