Pelningumo ataskaita naudojama apibrėžti generatorius „Python“. Taigi, prieš pradėdami suprasti, ką tiksliai duoda derlius, pirmiausia turime suprasti generatorių sąvoką. Generatoriai vaidina svarbų vaidmenį „Python“ programoje ir, jei giliniesi į „Python“ programavimą, tuomet gali būti, kad jau dirbote su „Python“ generatoriais. Generatoriai naudojami iteratoriams kurti „Python“, tačiau taikant kitokį požiūrį.
„Python“ generatoriai yra funkcijos, kurios sukuria rezultatų seką ir kurias galima pristabdyti bei dinamiškai atnaujinti. Pirmiausia generatoriai buvo įtraukti kaip pasirenkama funkcija programoje „Python 2.2“, o standartiniai - „Python 2.3“. Nors jie buvo pakankamai galingi, „Python 2.5“ generatorių funkcijos buvo žymiai patobulintos.
Kai generatoriai buvo įtraukti į „Python 2.2“, jis įvedė naują raktinį žodį „produktyvumas“, kad būtų galima suderinti atgalinį ryšį, ir mums reikėjo importuoti generatorius iš _future_ modulio, kad galėtume juos naudoti. Tai buvo pakeista „Python“ versijoje 2.3, kai generatoriai tapo standartiniais ir to nebereikėjo.
Pelningumo ataskaita sustabdo funkcijos vykdymą ir siunčia vertę atgal skambinančiajam, išsaugodama būseną ir vėliau atnaujindama, o pats generatorius vis tiek gali būti atnaujintas, kai tik bus gauta grąžinimo vertė. Grąžinimo pareiškimas užbaigia funkcijos vykdymą ir siunčia vertę atgal skambinančiajam. Be jo jūsų funkcija nieko negrąžina. Gerai pažvelkime, kada naudoti derlių ir kada naudoti grąžą Python'e, kad geriau suprastume skirtumą tarp šių dviejų.
Pelningumo ataskaita naudojama „Python“ generatoriuose, norint pakeisti funkcijos grąžinimą, kad vertė būtų grąžinta atgal skambinančiajam, nesunaikinant vietinių kintamųjų. Norėdami geriau suprasti, kokį pelningumo teiginį vaidina programaujant Python programą, turite suprasti, kas yra generatoriai.
Generatoriaus funkcijos pagal apibrėžimą gaminamos taip pat, kaip ir įprastos funkcijos, tačiau jose yra „išeigos“ teiginys. Tai prasideda raktiniu žodžiu „išeiga“, kuris nurodo generatoriaus objektą, kuris turi būti grąžintas skambinančiajam. Generatorius yra speciali „Python“ funkcija, kuri grąžina generatoriaus objektą skambinančiajam, o ne duomenų vertę. Išeigos raktinis žodis turi unikalią galimybę sustabdyti funkcijos vykdymą, išsaugoti būseną ir vėliau atnaujinti.
Grąžinimo ataskaita, skirtingai nei pelningumo ataskaita, išeina iš funkcijos, grąžindama vertę jo skambintojui. Funkcijos grąžina skambintojui vertę, o labiau procedūrinio pobūdžio įmonės nieko aiškiai negrąžina. Nors funkcija gali turėti kelis grįžimo teiginius, bet kuriam iš jų gali būti iškviestas tik vienas iš jų.
Paprastai grąžinimo teiginys pasirodo pačiame funkcijos bloko gale, kad būtų grąžintas galutinis visų toje funkcijoje esančių teiginių vykdymo rezultatas. Tačiau funkcijų bloke taip pat gali pasirodyti anksčiau, kad būtų sustabdytas visų paskesnių to bloko teiginių vykdymas. Tai iškart atnaujina skambinančiojo programą. Kai reikšmė nenurodoma, lygiavertis grąžinimo objekto tipas „Python“ yra „Nėra“.
Sintaksiškai išeiga yra raktinis žodis, kuris gali būti naudojamas kaip ir grįžtamasis žodis, išskyrus tai, kad grąžinimo pareiškimas nutraukia jūsų funkcijos vykdymą ir siunčia atgal skambintojui vertę. Grąžinimo pareiškimo funkcija yra priimti duomenis ir grąžinti ką nors skambinančiajam. Skirtingai nuo grąžinimo, išeigos ataskaita yra aiškiai naudojama generatoriams apibrėžti, pakeičiant funkcijos grąžinimo vertę, kad būtų sustabdytas jos vykdymas, nepažeidžiant vietinių kintamųjų, tuo tarpu grąžinimo teiginys sunaikina visus vietinius kintamuosius.