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

Как можно взаимодействовать с генератором

В Python с генератором можно взаимодействовать несколькими способами:

  1. Через next() - получаем следующее значение:
python
gen = (x for x in range(3))
print(next(gen))  # 0
print(next(gen))  # 1
  1. В цикле for - автоматически обрабатывает StopIteration:
python
for item in gen:
    print(item)  # 2 (только оставшееся)
  1. Через send() - передача значений в генератор:
python
def gen():
    val = yield 1
    yield val + 2
g = gen()
next(g)  # 1
print(g.send(10))  # 12
  1. Через throw() - бросает исключение в генератор:
python
g.throw(ValueError, "Error!")
  1. Через close() - останавливает генератор:
python
g.close()

Генераторы одноразовые - после исчерпания или закрытия их нельзя использовать повторно. Для повторного использования нужно создать новый экземпляр.

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

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

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

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