Rendimento del pitone

Python Yield



Yield è una parola chiave incorporata in Python che restituisce i valori da una funzione. L'esecuzione della funzione non viene terminata. Piuttosto, restituisce il valore al chiamante e mantiene lo stato di esecuzione della funzione. L'esecuzione della funzione viene ripresa dall'ultima istruzione yield. Il rendimento ci consente di produrre una sequenza di valori piuttosto che un valore. Viene utilizzato all'interno di un corpo funzione. La funzione che contiene un'istruzione yield è nota come funzione generatore.







Ci sono diversi vantaggi nel produrre parole chiave. Ad esempio, controlla l'allocazione della memoria e salva lo stato della variabile locale. Tuttavia, aumenta la complessità del codice.



Questo articolo spiega l'uso della parola chiave yield con esempi.



Sintassi di Yield

La sintassi del rendimento è semplice e diretta. Il rendimento viene avviato con la parola chiave yield e la sintassi come segue:





prodottovalore

Esempi

Ora, vediamo degli esempi per comprendere l'uso e il funzionamento delle dichiarazioni di rendimento. Tradizionalmente, la parola chiave return termina l'esecuzione del programma e restituisce un valore alla fine, mentre yield restituisce la sequenza di valori. Non archivia il valore in memoria e restituisce il valore al chiamante in fase di esecuzione. Nell'esempio riportato di seguito, viene definita una funzione generatore per determinare l'anno bisestile. Un salto è quell'anno in cui divisibile per quattro restituisce zero come resto. La parola chiave yield restituisce al chiamante il valore dell'anno bisestile. Poiché otterrà il valore dell'anno bisestile, sospenderà l'esecuzione del programma, restituirà il valore e quindi riprenderà l'esecuzione dal punto in cui è stata interrotta.

#dichiarare un generatore per determinare l'anno bisestile
defsaltofunzione(la mia lista):
perioinla mia lista:
Se(io%4==0):
#usando il rendimento
prodottoio
#dichiarare la lista degli anni
year_list=[2010,2011,2012,2016,2020,2024]
Stampa('Stampa dei valori dell'anno bisestile')
perXinsaltofunzione(year_list):
Stampa(X)

Produzione



L'output mostra la serie degli anni bisestili.

Vediamo un altro esempio in cui la funzione generatore produce vari numeri e stringhe.

#dichiarare una funzione generatore
defla mia funzione():
prodotto 'Segnare'
prodotto 'John'
prodotto 'Taylor'
prodotto 'Ivano'
prodotto 10
prodotto venti
prodotto 30
prodotto 40
prodotto cinquanta
#chiamare e iterare attraverso la funzione generatore
perioinla mia funzione():
#stampa dei valori
Stampa(io)

Produzione

Implementiamo una funzione generatore per calcolare e stampare il valore del cubo della sequenza di numeri. Stiamo generando i valori del cubo da 1 a 30.

#dichiarare una funzione generatore per calcolare il valore del cubo
defcalcolo():
ore=1
#il ciclo while infinito
mentre Vero:
#calcolo cubo
prodottoval * val * val
#incrementa il valore di 1
ore=val +1
Stampa('I valori del cubo sono: ')
#richiamo della funzione generatore
perioincalcolo():
Seio>30:
rottura
Stampa(io)

Produzione

L'output mostra il valore del cubo inferiore a 30.

Conclusione

Yield è una parola chiave incorporata in Python che non termina l'esecuzione del programma e genera una serie di valori. Rispetto alla parola chiave return, la parola chiave yield produce più valori e restituisce al chiamante. Questo articolo spiega la resa di Python con esempi.