Код Junior Декораторы спрашивают часто обновлено

Декоратор, считающий вызовы

Условие

Напишите декоратор count_calls, который сохраняет число вызовов функции в атрибуте calls обёртки и сохраняет имя функции (functools.wraps). Проверка: run(n) вызывает декорированную функцию n раз и возвращает [f.calls, f.__name__, последний результат или None].

Примеры

run(3) // [3, "double", 4]
run(0) // [0, "double", null]
run(1) // [1, "double", 0]

Как подойти

Подсказки: 1
  1. Атрибут можно повесить на функцию: wrapper.calls = 0.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.