Tuottolausetta käytetään määrittelemään generaattorit Pythonissa. Joten ennen kuin selvitämme mitä tuotto tarkalleen on, meidän on ensin ymmärrettävä generaattorien käsite. Generaattoreilla on merkittävä rooli Pythonissa ja jos olet syvällisesti Python-ohjelmoinnissa, olet todennäköisesti jo työskennellyt Python-generaattoreiden kanssa. Generaattoreita käytetään iteraattoreiden luomiseen Pythonissa, mutta erilaisella lähestymistavalla.
Python-generaattorit ovat toimintoja, jotka tuottavat tulossarjan, jotka voidaan keskeyttää ja jatkaa dynaamisesti. Generaattorit lisättiin ensin valinnaisena ominaisuutena Python 2.2: ssä, ja niistä tehtiin vakiona Python 2.3: ssa. Vaikka generaattorien toiminnot olivat riittävän tehokkaita, niitä parannettiin merkittävästi Python 2.5: ssä.
Kun generaattorit lisättiin takaisin Python 2.2 -versioon, se toi mukanaan uuden avainsanan ”tuotto” taaksepäin yhteensopivuutta varten, jota varten meidän piti tuoda generaattorit _future_-moduulista käyttääksemme niitä. Tämä muutettiin Python-versiossa 2.3, kun generaattoreista tuli vakio, eikä sitä enää tarvita.
Tuottoilmoitus keskeyttää funktion suorittamisen ja lähettää arvon takaisin soittajalle, kun taas säästötila ja myöhemmin jatkaminen tarkoittaa, että koko generaattori voidaan edelleen jatkaa, kun palautusarvo on saatu. Palautuslausunto lopettaa toiminnon suorittamisen ja lähettää arvon takaisin soittajalle. Ilman sitä toiminto ei tuota mitään. Katsotaanpa hyvältä, milloin käytetään tuottoa ja milloin käyttää tuottoa Pythonissa, jotta ymmärrät paremmin näiden kahden eron.
Tuottolaskelmaa käytetään Python-generaattoreissa korvaamaan funktion palautus, jotta arvo lähetetään takaisin soittajalle tuhoamatta paikallisia muuttujia. Jotta ymmärrät paremmin, mitä tuottolausetta on Python-ohjelmoinnissa, sinun on ymmärrettävä, mitä generaattorit ovat.
Generaattoritoiminnot tuotetaan määritelmän mukaan aivan kuten tavalliset toiminnot, mutta ne sisältävät ”tuotto” -ilmoituksen. Tämä alkaa avainsanalla “tuotto”, joka määrittelee soittajalle palautettavan generaattoriobjektin. Generaattori on Pythonin erikoistoiminto, joka palauttaa soittajalle generaattoriobjektin data-arvon sijasta. Tuotto-avainsanalla on ainutlaatuinen kyky pysäyttää toiminnon suorittaminen, säästää tila ja jatkaa myöhemmin.
Palautuslausunto poistuu toiminnosta, toisin kuin tuottolausunto, luovuttamalla arvon soittajalle. Toiminnot palauttavat arvon takaisin soittajilleen, ja ne, jotka ovat luonteeltaan menettelyllisempiä, eivät palauta nimenomaisesti mitään. Vaikka funktiolla voi olla useita paluulausekkeita, vain yksi niistä voidaan kutsua jokaiselle toiminnon kutsulle.
Tyypillisesti paluulauseke ilmestyy toimintolohkon aivan loppuun, jotta saadaan lopputulos kaikkien kyseiseen funktioon sisältyvien lauseiden suorittamisesta. Kuitenkin voi myös näyttää aikaisemmin toimintolohkossa kaikkien seuraavien lauseiden suorituksen lopettamisen kyseisessä lohkossa. Tämä jatkaa välittömästi ohjelman suorittamista soittajalle. Kun arvoa ei määritetä, Pythonin vastaava palautusobjektityyppi on ”Ei mitään”.
Syntaktisesti tuotto on avainsana, jota voidaan käyttää samoin kuin palautusavainsana, paitsi että palautuslausunto lopettaa toimintosi suorittamisen ja lähettää arvon takaisin soittajalle. Palautuslausunnon toiminnallisuus on vastaanottaa tietoja ja palauttaa jotain soittajalle. Toisin kuin palautus, tuottoilmoitusta käytetään nimenomaisesti generaattoreiden määrittelemiseen korvaamalla funktion palautusarvo keskeyttämällä sen suorittaminen pitämällä paikalliset muuttujat ehjinä, kun taas palautuslausunto tuhoaa kaikki paikalliset muuttujat.