Funzioni annidate
Scorri per mostrare il menu
Quando si desidera organizzare il codice per una migliore leggibilità, incapsulamento o riutilizzo, è possibile definire una funzione all'interno di un'altra funzione. Queste sono chiamate funzioni annidate. In Python, si crea una funzione annidata scrivendo una definizione di funzione all'interno del corpo di un'altra. Questo permette di nascondere la logica di supporto che non dovrebbe essere accessibile dall'esterno, oppure di generare funzioni specializzate al volo.
La sintassi per una funzione annidata è semplice: basta inserire un'istruzione def all'interno del corpo di un'altra def. La funzione interna può accedere alle variabili della funzione esterna, il che è utile per creare comportamenti personalizzati o calcoli di supporto che dipendono dagli argomenti della funzione esterna.
Un uso pratico delle funzioni annidate è restituire una funzione personalizzata con parametri provenienti dalla funzione esterna. Questo viene spesso utilizzato nella programmazione funzionale per generare funzioni specializzate o per incapsulare logica che non dovrebbe inquinare lo scope globale.
1234567891011def make_multiplier(factor): # 'multiplier' function is nested inside 'make_multiplier' def multiplier(x): return x * factor return multiplier double = make_multiplier(2) triple = make_multiplier(3) print(double(5)) print(triple(4))
1. Perché potresti definire una funzione all'interno di un'altra funzione?
2. Qual è l'ambito di una variabile definita in una funzione esterna?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione