Définition d'un décorateur

Un décorateur permet d'intercepter les appels à des méthodes en intercalant des traitements avant ou après l'appel à la fonction souhaitée.

Exemple de code

#!/usr/bin/python3
			                    
def MyDecorator(f):
    print( "in the the decorator" )
    def hookFunction():
        print( "begin " + str( f ) )
        result = f()
        print( "end " + str( f ) )
        return result
    return hookFunction

@MyDecorator
def decoratedMethod():
    print( "function call" )
    return "Hello"


print( decoratedMethod() )

Pour lancer cet exemple, veuillez procéder ainsi :

$> python3 Decorator.py 
in the the decorator
begin <function decoratedMethod at 0x7f60cc706b90>
function call
end <function decoratedMethod at 0x7f60cc706b90>
Hello
$>