def myfunc():
print(" myfunc() called.")
return 'ok'
La valeur 'ok' était la valeur renvoyée par la fonction.La valeur renvoyée par la fonction est perdue après la décoration par une autre fonction
>>> myfunc()
myfunc() called.
'ok'
Maintenant, pour le décorer avec une autre fonction. La fonction décorer.
def deco(func):
def _deco():
print("before myfunc() called.")
func()
print(" after myfunc() called.")
return _deco
Pour décorer myfunc avec la fonction déco.
@deco
def myfunc():
print(" myfunc() called.")
return 'ok'
>>> myfunc()
before myfunc() called.
myfunc() called.
after myfunc() called.
Pourquoi le résultat n'est pas le suivant?
>>> myfunc()
before myfunc() called.
myfunc() called.
'ok'
after myfunc() called.