1. Apprendre
  2. /
  3. Cours
  4. /
  5. Écrire des fonctions en Python

Connected

Exercice

Mesurer la surcharge d'un décorateur

Votre supérieur a écrit un décorateur nommé check_everything() qu'il trouve extraordinaire et insiste pour que vous l'utilisiez dans votre fonction. Toutefois, vous avez remarqué que lorsqu'il décore vos fonctions, leur exécution devient beaucoup plus lente. Vous devez le convaincre que ce décorateur ajoute trop de temps de traitement à votre fonction. Pour cela, vous allez mesurer la durée d'exécution de la fonction décorée et la comparer au temps qu'aurait pris la fonction non décorée. Voici le décorateur en question :

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

Instructions

100 XP
  • Appelez la fonction d'origine plutôt que la version décorée en utilisant un attribut de la fonction que l'instruction wraps() dans le décorateur de votre supérieur a ajouté à la fonction décorée.