xxxxxxxxxx
@funzione_decoratore
def mia_funzione():
print("Hello World!")
mia_funzione()
# output:
codice da eseguire prima di funzione_parametro
hello world!
codice da eseguire dopo di funzione_parametro
xxxxxxxxxx
def funzione_decoratore(funzione_parametro):
def wrapper():
""" nome convenzionale - wrapper significa 'incarto, confezione' """
print("... codice da eseguire prima di 'funzione_parametro' ...")
funzione_parametro()
print("... codice da eseguire dopo di 'funzione_parametro' ...")
return wrapper
def mia_funzione():
print("Hello World!")
xxxxxxxxxx
def mia_funzione():
print("Hello World!")
>>> print(mia_funzione.__name__)
mia_funzione
xxxxxxxxxx
mia_funzione = funzione_decoratore(mia_funzione)
mia_funzione()
# output:
codice da eseguire prima di funzione_parametro
Hello World!
codice da eseguire dopo di funzione_parametro