L'instruction rendement suspend l'exécution d'une fonction et renvoie une valeur à l'appelant, mais conserve suffisamment d'état pour permettre à la fonction de reprendre là où elle s'était arrêtée. Lorsque la fonction reprend, elle continue son exécution immédiatement après la dernière exécution de rendement. Cela permet à son code de produire une série de valeurs au fil du temps, plutôt que de les calculer en une seule fois et de les renvoyer comme une liste.
Voyons avec un exemple :
Python
# 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)> |
>
alphabet sous forme de chiffres
>
Sortir:
1 2 3>
Retour renvoie une valeur spécifiée à son appelant alors que Rendement peut produire une séquence de valeurs. Nous devons utiliser rendement lorsque nous voulons parcourir une séquence, mais que nous ne voulons pas stocker la séquence entière en mémoire. Le rendement est utilisé en Python générateurs . Une fonction génératrice est définie comme une fonction normale, mais chaque fois qu'elle doit générer une valeur, elle le fait avec le mot-clé rendement plutôt qu'avec return. Si le corps d'un def contient du rendement, la fonction devient automatiquement une fonction génératrice.
Python
paramètre Verilog
# 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)> |
>
>
Sortir:
1 4 9 16 25 36 49 64 81 100>