Résumé
Utiliser un décorateur ou plutôt la syntaxe des décorateurs n'est pas très compliqué. En programmation orientée objet, pour définir des méthodes de classe, c'est un passage obligé. En revanche, comprendre et créer un décorateur est loin d'être aussi simple...
Pour réellement comprendre ce que sont les décorateurs et à quoi ils servent, nous allons devoir repartir de la définition même d'une fonction. Je pense que bon nombre de lecteurs ne ressentiront pas forcément l'utilité du début de l'article, ils le trouveront peut-être trop long et seront enclin à passer rapidement à la suite mais, encore une fois, la notion de décorateur, définie dans le PEP 318 [1], est loin d'être triviale. Je préfère donc commencer par les définitions de base pour être certain que nous nous basons tous sur les mêmes concepts. Comme nous allons effectuer beaucoup de tests, j'utiliserai un interpréteur interactif et vous verrez donc apparaître dans le code d'exemple le symbole du prompt >>>. À moins de le préciser explicitement, j'utiliserai Python 2.7.