Donnons un exemple :
>>> def plus3(f): ... return lambda x : f(x) + 3 ... >>> @plus3 ... def puissance2(x): ... return x**2 ... >>> puissance2(2) 7 >>> puissance2(3) 12
Dans ce qui précède, on applique toujours, au résultat de puissance2, la fonction plus3. Ainsi, puissance2(2) n'est pas égal à $2^2$, mais à $2^2+3$.
On réalise ainsi la composition de fonctions :
puissance2 = plus3 o puissance2
c'est-à-dire
puissance2(x) = plus3 (puissance2(x))
Le decorator est donc une fonction qui s'applique à une fonction, pour réaliser l'équivalent de la composition.