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

Что произойдет в конце генератора на Python

Генератор в Python завершает свою работу, когда встречает оператор return или когда выполнение доходит до конца функции. В этот момент генерируется исключение StopIteration, которое сигнализирует о завершении итерации.

Пример:

python
def simple_gen():
    yield 1
    yield 2
    # Неявно вызывается StopIteration

gen = simple_gen()
print(next(gen)) # 1
print(next(gen)) # 2
print(next(gen)) # StopIteration

text

Если генератор содержит `return значение`, это значение станет атрибутом исключения `StopIteration.value` (доступно через `yield from` или обработку исключения).  

Пример с `return`:  
```python
def gen_with_return():
    yield 1
    return "Done"

try:
    g = gen_with_return()
    next(g)
    next(g)  # StopIteration: Done
except StopIteration as e:
    print(e.value)  # "Done"
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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