resa del Python

Come utilizzare la parola chiave Yield Python

I generatori non sono il concetto più intuitivo in Python. A peggiorare le cose, usano una parola chiave speciale chiamata "rendimento" anche se i generatori sono essi stessi funzioni. Qual è la parola chiave rendimento? Come si confronta con una dichiarazione di reso?

Queste sono buone domande. In questa guida, parliamo di cos’è la dichiarazione di rendimento e di come puoi utilizzarla nel tuo codice. Esaminiamo un esempio della parola chiave rendimento in azione. Iniziamo!

Ti consigliamo di leggere i nostri articoli su iteratori Python e generatori prima di continuare. Questo ti fornisce un contesto utile che puoi usare per approfondire la tua comprensione della parola chiave yield.

Torna alle origini: iteratori e generatori

Le liste sono descritte come oggetti iterabili. Questo perché puoi visualizzare i loro contenuti utilizzando un "for" ciclo continuo. Ogni volta che il ciclo viene eseguito, Python accede a un elemento nell’elenco. Anche dizionari, tuple e stringhe sono oggetti iterabili.

Una funzione che accede a un elemento da un oggetto iterabile è chiamata iteratore. Creiamo un elenco e iteriamoci sopra usando un for loop:

Questo codice stampa tutti i peperoni nella cartella "peperoni" elenco alla console:

Usiamo il nostro iteratore tutte le volte che vogliamo. Nell’ultimo esempio, abbiamo iterato sui "peperoni" oggetto due volte.

I generatori Python sono come un iteratore utilizzato per ripetere un oggetto. C’è una grande differenza: puoi eseguire l’iterazione su un generatore solo una volta. Considerando che possiamo iterare su "peperoni" tutte le volte che vogliamo, si accede a un generatore solo una volta.

L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio del bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.

Definiamo un generatore per la nostra lista di peperoni:

Definiamo una funzione chiamata print_peppers( ). Questa è la nostra funzione del nostro generatore. Accetta un argomento: un elenco di peperoni che vogliamo stampare sulla console.

Nel nostro programma principale, chiamiamo la funzione print_peppers() e la assegniamo alla variabile pepper_generator. Successivamente, iteriamo sul generatore utilizzando un "for" ciclo continuo. Il nostro ciclo for chiama l’oggetto generatore e lo scorre su di esso.

Eseguiamo il nostro codice:

L’output è lo stesso del nostro primo esempio. La differenza è che possiamo scorrere la nostra lista solo una volta. Proviamo a ripetere l’iterazione sul nostro generatore:

Il nostro codice restituisce:

Abbiamo ripetuto una volta il nostro generatore. Non possiamo farlo di nuovo. Ecco perché il nostro secondo ciclo for non restituisce alcun valore.

Nota la parola "rendimento" nell’ultimo esempio. Ecco un promemoria:

La "resa" la parola chiave appare all’interno della nostra funzione. Restituisce un valore in una funzione generatore. è simile al "return" keyword.

Usa yield quando vuoi creare un generatore su cui puoi iterare. Nel nostro ultimo esempio, usiamo yield per creare un generatore per la nostra lista di peperoni.

Qualsiasi funzione che contiene yield restituirà un generatore. Lo vediamo controllando il tipo della variabile pepper_generator usando il metodo type():

Questo ci dice che pepper_generator, a cui è assegnata la funzione print_peppers, è un generatore.

Conclusione

La parola chiave yield restituisce un valore all’interno di un generatore.Un generatore è un tipo speciale di iteratore i cui valori possono essere ripetuti solo una volta.La parola chiave yield è simile a un’istruzione return eccetto che le istruzioni return non possono essere utilizzate nei generatori.

Ora sei pronto per usare la parola chiave yield come un Pythonista!