Выбор ответа Middle Итераторы и генераторы обновлено

Что делает yield from

Вопрос

Что делает yield from sub внутри генератора?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Выдаёт элементы sub по одному, прокидывает send/throw. yield from делегирует итерацию подгенератору: элементы проходят насквозь по одному, send() и throw() передаются внутрь, а результатом выражения становится значение return подгенератора.

Варианты ответа

  1. Выдаёт элементы sub по одному, прокидывает send/throwправильный ответ
  2. Возвращает sub целиком как один элемент генератора
  3. Запускает sub в отдельном потоке и ждёт результат
  4. Копирует элементы sub в список и выдаёт его разом

Разбор

yield from делегирует итерацию подгенератору: элементы проходят насквозь по одному, send() и throw() передаются внутрь, а результатом выражения становится значение return подгенератора. Чтобы выдать sub одним элементом, пишут yield sub. Потоков и копирования в список нет, ленивость сохраняется.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме