1. Обучение
  2. /
  3. Курса
  4. /
  5. Написание функций на Python

Connected

упражнение

Измерение накладных расходов декоратора

Ваш руководитель написал декоратор check_everything(), которым очень гордится, и настаивает на том, чтобы вы использовали его в своей функции. Однако вы заметили, что при его применении функции начинают работать значительно медленнее. Вам нужно убедить руководителя, что декоратор добавляет слишком большую нагрузку. Для этого вы измерите время выполнения декорированной функции и сравните его со временем выполнения недекорированной версии. Вот декоратор, о котором идёт речь:

def check_everything(func):
  @wraps(func)
  def wrapper(*args, **kwargs):
    check_inputs(*args, **kwargs)
    result = func(*args, **kwargs)
    check_outputs(result)
    return result
  return wrapper

Инструкции

100 XP
  • Вызовите исходную функцию вместо декорированной, используя атрибут, который оператор wraps() в декораторе вашего руководителя добавил к декорированной функции.