logo

Wanneer moet je rendement gebruiken in plaats van rendement in Python?

De yield-instructie schort de uitvoering van een functie op en stuurt een waarde terug naar de aanroeper, maar behoudt voldoende status om de functie in staat te stellen verder te gaan waar deze was gebleven. Wanneer de functie wordt hervat, wordt de uitvoering onmiddellijk na de laatste yield run voortgezet. Hierdoor kan de code in de loop van de tijd een reeks waarden produceren, in plaats van ze in één keer te berekenen en als een lijst terug te sturen.

Laten we eens kijken met een voorbeeld:



Python




panda's spil



# A Simple Python program to demonstrate working> # of yield> # A generator function that yields 1 for the first time,> # 2 second time and 3 third time> def> simpleGeneratorFun():> >yield> 1> >yield> 2> >yield> 3> # Driver code to check above generator function> for> value>in> simpleGeneratorFun():> >print>(value)>



>

Java-uitzonderingen

Java sorteert een lijst
>

Uitgang:

1 2 3>

Opbrengst stuurt een opgegeven waarde terug naar de beller terwijl Opbrengst kan een reeks waarden produceren. We moeten yield gebruiken als we een reeks willen herhalen, maar niet de hele reeks in het geheugen willen opslaan. Opbrengst wordt gebruikt in Python generatoren . Een generatorfunctie wordt op dezelfde manier gedefinieerd als een normale functie, maar wanneer er een waarde moet worden gegenereerd, wordt dit gedaan met het trefwoord yield in plaats van return. Als de hoofdtekst van een def yield bevat, wordt de functie automatisch een generatorfunctie.

Python




Java-bubbel sorteren

# A Python program to generate squares from 1> # to 100 using yield and therefore generator> # An infinite generator function that prints> # next square number. It starts with 1> def> nextSquare():> >i>=> 1> ># An Infinite loop to generate squares> >while> True>:> >yield> i>*>i> >i>+>=> 1> # Next execution resumes> ># from this point> # Driver code to test above generator> # function> for> num>in> nextSquare():> >if> num>>100>:> >break> >print>(num)>

Java-methode
>

>

Uitgang:

1 4 9 16 25 36 49 64 81 100>