decoratori python sono delle funzioni che ti permettono di eseguire dei blocchi di codici prima è dopo che venga eseguito il blocco di codice di un a un’altra funzione target
Esempio 1
def funzione_decoratore(funzione):
def funzione_prima_dopo():
print("codice che viene eseguito prima della funzione_target")
funzione()
print("codice che viene eseguito dopo della funzione_target")
return funzione_prima_dopo
@funzione_decoratore
def funzione_target():
print("codice della funzione target")
funzione_target()
Nota è possibile testare il codice direttamente tramite CMD

Descrizione:
- def funzione_decoratore(funzione): – Definisco una funzione nominata funzione_decoratore , con una variabile o metodo nominato funzione.
- def funzione_prima_dopo(): – Definito una altra funzione nominata funzione_prima_dopo da notare che gli spazzi vuoti fano si che questa funzione si trovi dentro il blocco di codice della funzione_decoratore
- print()
- return funzione_prima_dopo – in questo caso esegue il blocco di codice dentro la funzione funzione_prima_dopo e ritorna come il valore che genera tale funzione
- @funzione_decoratore – questa e la parte interessante del articolo decoratori python, quando scrivo questo codice al inizio di ogni funzione si va a decorare tale funzione nel mio caso la funzione_target , Nota
Esempio 2
def mario(funzione):
def saluta():
print("Ciao sono Mario")
funzione()
print("Piacere di conoserti")
return saluta
@mario
def lucia():
print("ciao sono lucia")
@mario
def ben():
print("ciao sono Ben")
lucia()
ben()

Descrizione:
L’esempio 2 e simile al es.1 cambiano solo i nominativi dei vari metodi per farvi capire il blocco di codice non e vincolato da nominativi particolari. Tutto si può personalizzare. Da notare la decorazione @mario che viene messo prima di ogni funzione che voglio decorare . Il risultato come si vede nella screen sono i messaggi : Ciao sono Mario, ciao sono Lucia ecc.