Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: generator, stopiteration

Что произойдет при попытке получить значение из завершенного генератора?

Вопрос проверяет понимание жизненного цикла генератора и механизма завершения итерации.

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

Если попытаться получить значение из завершённого генератора, возникнет исключение StopIteration. Это стандартный механизм завершения итерации в Python. Генератор нельзя "перезапустить". Нужно создать новый экземпляр.

Длинный ответ

Генератор имеет ограниченный жизненный цикл.

1. Завершение генератора

Генератор завершается, когда:

  1. Заканчивается функция

  2. Выполняется return

  3. Выбрасывается StopIteration

2. Что произойдет при следующем next()

Пример:

def gen():
    yield 1

g = gen()
next(g)
next(g)   # StopIteration

Это стандартное поведение.

3. Почему генератор нельзя использовать повторно

Причина:

  1. Состояние функции уже завершено

  2. Контекст выполнения уничтожен

Чтобы снова получить значения, нужно:

g = gen()

4. Как это используется внутри Python

Цикл for:

  1. Вызывает next()

  2. Перехватывает StopIteration

  3. Завершает цикл

Поэтому ошибка не видна пользователю.

Вывод

Попытка получить значение из завершённого генератора приводит к StopIteration. Генераторы одноразовые, и для повторной итерации нужно создавать новый экземпляр.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Python

    Python

Ключевые слова

#generator

#stopiteration

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.