Kada naudoti išeigą, o ne grąžą Python?
Pajamingumo pareiškimas sustabdo funkcijos vykdymą ir siunčia reikšmę atgal skambinančiajam, bet išlaiko pakankamai būsenos, kad funkcija būtų tęsiama ten, kur buvo baigta. Kai funkcija atnaujinama, ji tęsia vykdymą iš karto po paskutinio derliaus paleidimo. Tai leidžia jo kodui laikui bėgant sukurti verčių seriją, o ne jas apskaičiuoti iš karto ir siųsti atgal kaip sąrašą.
Pažiūrėkime su pavyzdžiu:
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)> |
Išvestis:
1 2 3
Grįžti siunčia nurodytą reikšmę atgal savo skambintojui, tuo tarpu Derlius gali sukurti reikšmių seką. Turėtume naudoti išeigą, kai norime kartoti seką, bet nenorime visos sekos saugoti atmintyje. Išeiga naudojama Python generatoriai . Generatoriaus funkcija apibrėžiama kaip ir įprasta funkcija, tačiau kai reikia sugeneruoti vertę, ji tai daro su pajamingumo raktiniu žodžiu, o ne grąžinimu. Jei def turinyje yra derlius, funkcija automatiškai tampa generatoriaus funkcija.
Python
# 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>>> |