Yield is een ingebouwd sleutelwoord van Python dat de waarde(n) van een functie retourneert. De uitvoering van de functie wordt niet beëindigd. In plaats daarvan geeft het de waarde terug aan de aanroeper en behoudt het de uitvoeringsstatus van de functie. De uitvoering van de functie wordt hervat vanaf de laatste opbrengstverklaring. De opbrengst stelt ons in staat om een reeks waarden te produceren in plaats van één waarde. Het wordt gebruikt in een functielichaam. De functie die een opbrengstverklaring bevat, staat bekend als de generatorfunctie.
Er zijn verschillende voordelen om trefwoorden op te leveren:. Het regelt bijvoorbeeld de geheugentoewijzing en slaat de status van de lokale variabele op. Het verhoogt echter de complexiteit van de code.
In dit artikel wordt het gebruik van het trefwoord opbrengst uitgelegd met voorbeelden.
Syntaxis van opbrengst
De opbrengstsyntaxis is eenvoudig en duidelijk. De opbrengst wordt als volgt gestart met het trefwoord opbrengst en de syntaxis:
opbrengstwaardeVoorbeelden
Laten we nu voorbeelden bekijken om het gebruik en de werking van rendementsverklaringen te begrijpen. Traditioneel beëindigt het return-sleutelwoord de uitvoering van het programma en retourneert aan het einde een waarde, terwijl yield de reeks waarden retourneert. Het slaat de waarde niet op in het geheugen en geeft de waarde tijdens runtime terug aan de beller. In het onderstaande voorbeeld is een generatorfunctie gedefinieerd om het schrikkeljaar te bepalen. Een sprong is dat jaar wanneer deelbaar door vier nul oplevert als rest. Het rendementszoekwoord geeft de waarde van het schrikkeljaar terug aan de beller. Omdat het de waarde van een schrikkeljaar krijgt, zal het de uitvoering van het programma pauzeren, de waarde retourneren en vervolgens de uitvoering hervatten vanaf het punt waar het was gestopt.
#een generator declareren om schrikkeljaar te bepalendef leapfunc(my_list):
voor ik in mijn_lijst:
if(i%4==0):
#rendement gebruiken
opbrengst i
#declareren van de jaarlijst
year_list=[2010,2011,2012,2016,2020,2024]
print("De schrikkeljaarwaarden afdrukken")
voor x in leapfunc(year_list):
afdrukken(x)
Uitgang:
De output toont de reeks schrikkeljaren.
Laten we een ander voorbeeld bekijken waarin de generatorfunctie verschillende getallen en tekenreeksen oplevert.
#declareren van een generatorfunctiedef mijnfunc():
opbrengst "Mark"
opbrengst "Jan"
opbrengst "Taylor"
opbrengst "Ivan"
opbrengst 10
opbrengst 20
opbrengst 30
opbrengst 40
opbrengst 50
#aanroepen en itereren door de generatorfunctie
voor i in myfunc():
#waarden afdrukken
afdrukken (ik)
Uitgang:
Laten we een generatorfunctie implementeren om de kubuswaarde van de reeks getallen te berekenen en af te drukken. We genereren de kubuswaarden van 1 tot 30.
#declareren van een generatorfunctie om de kubuswaarde te berekenendef calcube():
val=1
#de oneindige while-lus
terwijl waar:
#rekenkubus
opbrengst val*val*val
#waarde verhogen met 1
val=val+1
print("De kubuswaarden zijn: ")
#de generatorfunctie aanroepen
voor i in calcube():
als ik>30:
breken
afdrukken (ik)
Uitgang:
De output toont de kubuswaarde kleiner dan 30.
Conclusie
Yield is een ingebouwd sleutelwoord van Python dat de uitvoering van het programma niet beëindigt en een reeks waarden genereert. In vergelijking met het return-trefwoord produceert het yield-trefwoord meerdere waarden en keert het terug naar de beller. Dit artikel legt de Python Yield uit met voorbeelden.