Встречается на собеседованиях • сегодня
Что произойдет в конце генератора на 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"
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы