Skirtumas tarp Python derliaus ir Python grąžos

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ų.

Kas yra Python Yield?

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.

Kas yra „Python Return“?

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“.

Skirtumas tarp Python derliaus ir grąžos

  1. Su Python derliumi ir grąža susiję pagrindai

    • Pelningumo ataskaita naudojama „Python“ generatoriuose, norint pakeisti funkcijos grąžinimą, kad vertė būtų grąžinta atgal skambinančiajam, nesunaikinant vietinių kintamųjų. Generatorius yra speciali „Python“ funkcija, kuri grąžina generatoriaus objektą skambinančiajam, o ne duomenų vertę.
    • Grąžinimo ataskaita, skirtingai nei pelningumo ataskaita, išeina iš funkcijos, grąžindama vertę jo skambintojui. Paprastai grąžinimo teiginys pasirodo pačiame funkcijos bloko gale, kad būtų grąžintas galutinis visų toje funkcijoje esančių teiginių vykdymo rezultatas. Visos funkcijos grąžina vertę, o jei nenurodyta jokia reikšmė, ji grąžina „Nėra“.
  1. Generatoriai ir „Python“ derliaus bei grąžos funkcijos

    • Pelningumo ataskaita aiškiai naudojama su Python generatoriais. Sintaksiškai generatorius yra funkcija, nurodanti derlių. Nors funkcija gali turėti kelis grįžimo teiginius, bet kuriam iš jų gali būti iškviestas tik vienas iš jų.
    • Skirtingai nuo funkcijos, kuri grįžta tik vieną kartą, generatoriai gali sustabdyti vykdymą ir duoti tarpinius rezultatus. Kiekvienas generatorius yra apibrėžiamas kaip funkcija, tačiau vietoj grąžinimo raktinio žodžio, funkcijų bloko viduje naudojamas išeigos raktinis žodis, kuris parodo, kad grąžinimo vertė yra tik laikina, o visą generatorių galima atnaujinti net ir gavus grąžinimo vertę..
  1. Python derliaus vykdymas ir grąža

    • Grąžinimo pareiškimas nutraukia funkcijos vykdymą ir grąžina vertę jo skambintojui. Funkcijos grąžina skambintojui vertę, o labiau procedūrinio pobūdžio įmonės nieko aiškiai negrąžina. Iš esmės tai yra išeiti iš funkcijos ir sunaikinti visas vietos vertybes.
    • Kita vertus, pelningumo ataskaita pakeičia grąžinamąją funkcijos vertę, kad būtų sustabdytas jos vykdymas, ir siunčia vertę atgal skambinančiajam, nesunaikindama vietinių kintamųjų. Tačiau, skirtingai nuo grąžinimo funkcijos, išeiga atnaujina funkcijos vykdymą ten, kur ji buvo palikta.

Python derlius ir grąža: palyginimo diagrama

Python derliaus ir grąžos santrauka

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.