По порядку Middle Декораторы обновлено

Когда что выполняется при @retry(3)

Вопрос

Расставьте события по времени для кода @retry(3) над def fetch(): ..., после которого вызывают fetch().

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

Расставьте шаги по порядку стрелками.

  1. 1
    Обёртка вызывает исходную функцию
  2. 2
    Вызов retry(3) возвращает декоратор
  3. 3
    Декоратор получает функцию fetch и возвращает обёртку
  4. 4
    Вызов fetch() запускает обёртку
  5. 5
    Имя fetch привязывается к обёртке
Показать ответ и разбор

Коротко

Первые три шага происходят при выполнении определения функции, обычно при импорте модуля. Последние два при каждом вызове.

Правильный порядок

  1. 1
    Вызов retry(3) возвращает декоратор
  2. 2
    Декоратор получает функцию fetch и возвращает обёртку
  3. 3
    Имя fetch привязывается к обёртке
  4. 4
    Вызов fetch() запускает обёртку
  5. 5
    Обёртка вызывает исходную функцию

Разбор

Первые три шага происходят при выполнении определения функции, обычно при импорте модуля. Последние два при каждом вызове.

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

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