Introduzione ai decoratori
Fa parte della sezione Programmazione orientata agli oggetti del percorso Python di Coddy. Lezione 9 di 64.
I decoratori sono un modo per modificare o migliorare funzioni e classi senza cambiare il loro codice originale. Usano il simbolo @.
Ecco un esempio di decoratore semplice:
def my_decorator(func):
def wrapper():
print("Before function runs")
func()
print("After function runs")
return wrapperApplica il decoratore usando @:
@my_decorator
def say_hello():
print("Hello!")Chiama la funzione decorata:
say_hello()Output:
Before function runs
Hello!
After function runs@my_decorator equivale a scrivere:
def say_hello():
print("Hello!")
say_hello = my_decorator(say_hello)Ma la sintassi @ è molto più pulita e facile da leggere.
Punto chiave: i decoratori avvolgono le funzioni per aggiungere funzionalità extra senza modificare il codice della funzione originale
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Fondamenti di OOP
File esterniIntroduzione a OOPClassi vs. oggettiIl parametro selfMetodiAttributiMetodo costruttore (__init__)Riepilogo - Calcolatrice semplice4Ereditarietà
Ereditarietà di baseLa funzione super()Sovrascrittura dei metodiEreditarietà multiplaOrdine di risoluzione dei metodiRiepilogo - Gerarchia dei dipendenti7Metodi speciali
Introduzione ai metodi magiciSovraccarico degli operatoriMetodi magici dei contenitoriRiepilogo - Lista personalizzata10Modelli di progettazione Parte 1
Introduzione ai modelli di progettazioneModello SingletonModello FactoryModello ObserverModello Strategy2Decoratori
Introduzione ai decoratoriDecoratore di proprietàDecoratore di metodo staticoDecoratore di metodo di classe5Polimorfismo
Ripasso dell'override dei metodiDuck typingClassi e metodi astrattiProgettazione delle interfacceRiepilogo - Calcolatore di forme8Concetti avanzati di OOP
Composizione vs ereditarietàMixinMetodi statici e di classeDecorator di classeContext manager11Pattern di progettazione - Parte 2
Pattern dei comandiPattern adattatorePattern decoratorePattern metodo templatePattern statoPattern composito3Proprietà delle classi
Variabili di istanza e di classeDecorator delle proprietàAttributi privatiRiepilogo - Gestore di conti bancari6Incapsulamento
Membri pubblici, protetti e privatiModificatori di accessoOccultamento delle informazioniDecorator delle proprietà: avanzatiRipasso - Sistema di registri degli studenti12Progetto: Gestione della biblioteca
Panoramica del progettoClassi Libro e UtenteSistema di prestitoFunzionalità di ricercaInterfaccia amministratoreTest e integrazioneEsercitati da solo: Compilatore Python online