1@funzione_decoratore
2def mia_funzione():
3 print("Hello World!")
4
5mia_funzione()
6# output:
7
8... codice da eseguire prima di funzione_parametro ...
9hello world!
10... codice da eseguire dopo di funzione_parametro ...
1def funzione_decoratore(funzione_parametro):
2 def wrapper():
3 """ nome convenzionale - wrapper significa 'incarto, confezione' """
4 print("... codice da eseguire prima di 'funzione_parametro' ...")
5 funzione_parametro()
6 print("... codice da eseguire dopo di 'funzione_parametro' ...")
7 return wrapper
8
9def mia_funzione():
10 print("Hello World!")
1def mia_funzione():
2 print("Hello World!")
3
4>>> print(mia_funzione.__name__)
5mia_funzione
1mia_funzione = funzione_decoratore(mia_funzione)
2
3mia_funzione()
4# output:
5
6... codice da eseguire prima di funzione_parametro ...
7Hello World!
8... codice da eseguire dopo di funzione_parametro ...