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

Какие методы реализованы у генераторов

Генераторы в Python имеют несколько встроенных методов для управления их выполнением:

  1. send(value) – отправляет значение в генератор, которое становится результатом текущего yield.
    python
    def gen():
        x = yield 1
        yield x + 2
    g = gen()
    next(g)  # 1
    print(g.send(10))  # 12
  1. throw(exc) – вызывает исключение exc на текущем yield.

    python
    def gen():
        try:
            yield 1
        except ValueError:
            yield "Caught!"
    g = gen()
    next(g)
    print(g.throw(ValueError))  # "Caught!"
  2. close() – вызывает GeneratorExit в генераторе, завершая его.

    python
    def gen():
        try:
            yield 1
        except GeneratorExit:
            print("Closed")
    g = gen()
    next(g)
    g.close()  # Выведет "Closed"
  3. __next__() (или next()) – запускает выполнение до следующего yield.

Генераторы также поддерживают итерацию через for или next().

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

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

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

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