Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Chiusure
Un Closures è un oggetto funzione che ricorda i valori negli ambiti circostanti anche se non sono presenti in memoria. Procediamo passo dopo passo.
Innanzitutto, una Funzione Annidata è una funzione definita all'interno di un'altra funzione. È molto importante notare che le funzioni annidate possono accedere alle variabili dell'ambito circostante. Tuttavia, almeno in Python, sono solo in lettura. Tuttavia, si può utilizzare esplicitamente la parola chiave "nonlocal" con queste variabili per modificarle.
Ad esempio:
Questo funziona bene poiché la funzione 'data_transmitter' può accedere al 'message'. Per dimostrare l'uso della parola chiave "nonlocal", consideriamo questo:
Senza la parola chiave nonlocal, l'output sarebbe "3 9"; tuttavia, con il suo utilizzo, otteniamo "3 3", cioè il valore della variabile "number" viene modificato.
Ora, che ne dici di restituire l'oggetto funzione anziché chiamare la funzione annidata all'interno. (Ricorda che anche le funzioni sono oggetti. (È Python.))
E chiamiamo la funzione nel seguente modo:
Anche se l'esecuzione di "transmit_to_space()" è stata completata, il messaggio è stato comunque preservato. Questa tecnica con cui i dati sono legati a un certo codice anche dopo la fine di quelle altre funzioni originali si chiama closures in Python.
VANTAGGIO: I Closures possono evitare l'uso di variabili globali e forniscono una forma di nascondimento dei dati. (Ad esempio, quando ci sono pochi metodi in una classe, usare i closures invece).
Inoltre, i Decorator in Python usano ampiamente i closures.
Esercizio
Crea un ciclo annidato e una closure in Python per creare funzioni che ottengano più funzioni di moltiplicazione usando i closures. Cioè, usando i closures, si potrebbero creare funzioni per creare funzioni multiply_with_5() o multiply_with_4() usando i closures.
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!
