Accueil > Programmation > python > décorateur décorator
décorateur décorator
Publié le 25 novembre 2022, dernière mise-à-jour le 26 août 2023, 6 visites, visites totales.
Un décorateur agit sur la sortie d’une fonction , sans la remplacer directement.
Quand la fonction est appelée, c’est le décorateur qui est appelé.
Par exemple avec une fonction
def decorateur(f):
def g(a,b):
print( "le résultat est {}".format(f(a,b)))
return g
@decorateur
def ajoute(a,b):
return a+b
@decorateur
def mult(a,b):
return a*b
ajoute(5,3) affichera le résultat est 8
au lieu de retourner 8
mult(2,4) affichera le résultat est 8
Attention : le simple fait d’utiliser la fonction provoque l’affichage :
c=ajoute(5,6) affiche le résultat est 11
succession de décorateurs :
def decorateur2(f):
def h(a,b):
print( "Dans l'ensemble des réels, {}".format(f(a,b)))
return h
def decorateur(f):
def g(a,b):
return "le résultat est {}".format(f(a,b))
return g
@decorateur2
@decorateur
def div(a,b):
return a/b
div (5,4)
Dans l’ensemble des réels, le résultat est 1.25
On peut généraliser le décorateur :
def decorateur(f):
def g(*args,**kargs):
print( "le résultat est {}".format(f(*args,**kargs)))
return g
decorateur debug :
def decorateur_debug(f) :
def g(*args,**kargs) :
if debug==True :
print(f.__name__+" :"+f.__doc__)
return f(*args,**kargs)
return g