Исследование поведения генераторной функции с использованием yield

z — генераторная функция. Вызов z() создаёт объект генератора, а каждый next продвигает выполнение до следующего yield, выдавая числа от 0 до 9 и сохраняя состояние между обращениями.

Короткий ответ

Что ответить на собеседовании

z — генераторная функция. Вызов z() создаёт объект генератора, а каждый next продвигает выполнение до следующего yield, выдавая числа от 0 до 9 и сохраняя состояние между обращениями.

Подробный разбор

Ответ с пояснениями

Условие

Как выглядит следующий фрагмент кода:


def z():
    for i in range(10):
        yield i

Что делает данная функция и как работает оператор yield?

Ответ

z — генераторная функция. Вызов z() создаёт объект генератора, а каждый next продвигает выполнение до следующего yield, выдавая числа от 0 до 9 и сохраняя состояние между обращениями.

Пример использования:

generator = z()
print(next(generator))  # 0
print(next(generator))  # 1
print(list(generator))  # [2, 3, 4, 5, 6, 7, 8, 9]

После окончания цикла генератор исчерпан, и следующий next поднимет StopIteration. for обрабатывает это автоматически. Вызов z() сам не печатает значения и не создаёт список всех чисел. Новый вызов z() создаёт независимый обход с начала.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее