Dans cet article plutôt cours, nous allons voir comment utiliser le concept de décorateurs en Python pour chronométrer des fonctions, ce qui peut être utile en terme de debugging.

Qu’est-ce qu’un décorateur ?

En Python, un décorateur est une fonction chargée de modifier d’autres fonctions. C’est à dire que vous définissez un décorateur en début de code, par exemple, et vous choisissez de l’appliquer ou non à vos fonctions en précédant la déclaration de celles-ci.

Un décorateur simple

Piqué depuis le site RealPython (que je vous conseille fortement pour revoir certaines notions de temps en temps):

C’est plutôt clair non ?

Chronométrer ses fonctions

Voici le décorateur que je vous propose pour chronométrer vos fonctions. Il utilise time.time() afin de calculer le temps demandé.

Vous remarquerez qu’il est assez simple, time.time() retournant le nombre de secondes depuis le 1/01/1970, calculer le nombre de secondes reviens à stocker sa valeur avant le lancement de la fonction, après celui-ci, et calculer la différence entre les deux, différence que l’on formate avec int() pour obtenir un nombre entier.

Appliquons-le à une fonction:

Vous aurez l’output suivant :

Il ne vous reste plus qu’à l’appliquer à chaque fonction que vous souhaiterez chronométrer durant votre debug.