Razlika med donosom Python in Python Return

Izkaz donosa se uporablja za definiranje generatorjev v Pythonu. Preden se lotimo tega, kaj točno prinaša, moramo najprej razumeti koncept generatorjev. Generatorji imajo pomembno vlogo v Pythonu in če ste globoko v programiranju Pythona, obstaja velika verjetnost, da ste že delali s Python generatorji. Generatorji se uporabljajo za ustvarjanje iteratorjev v Pythonu, vendar z drugačnim pristopom.

Generatorji Python so funkcije, ki ustvarijo zaporedje rezultatov in jih lahko dinamično zaustavijo in nadaljujejo. Generatorji so bili najprej dodani kot dodatna funkcija v Python-u 2.2 in so postali standardni v Python-u 2.3. Čeprav so bili dovolj zmogljivi, so funkcije generatorjev v Python 2.5 bistveno izboljšali.

Ko smo generatorje dodali nazaj v Python 2.2, je uvedel novo ključno besedo "donos" za nazaj združljivost, za kar smo morali uporabiti uvoznike generatorjev iz modula _future_, da jih lahko uporabimo. To je bilo spremenjeno v različici Python 2.3, ko so generatorji postali standardni in niso bili več potrebni.

Izkaz donosa zaustavi izvajanje funkcije in pošlje vrednost nazaj klicatelju, hkrati pa shrani stanje in kasneje nadaljuje, kar pomeni, da se lahko celoten generator še naprej nadaljuje po pridobitvi povratne vrednosti. Izjava o vrnitvi konča izvedbo funkcije in klicatelju pošlje vrednost nazaj. Brez tega vaša funkcija ne vrne ničesar. Oglejmo si, kdaj uporabiti donos in kdaj uporabiti return v Pythonu, da bolje razumemo razliko med obema.

Kaj je Python Yield?

Izjava o donosu se uporablja v generatorjih Python-a za nadomestitev vrnitve funkcije za pošiljanje vrednosti klicatelju brez uničenja lokalnih spremenljivk. Če želite bolje razumeti, kakšno vlogo ima izjava o donosu v programiranju Python, morate razumeti, kaj so generatorji.

Funkcije generatorja so po definiciji izdelane tako kot običajne funkcije, vendar vsebujejo stavek donosa. Začne se s ključno besedo "donosi", ki določa, da se bo generatorski predmet vrnil klicatelju. Generator je posebna funkcija v Pythonu, ki vrne objekt generatorja klicatelju in ne podatkovni vrednosti. Ključna beseda donos ima edinstveno sposobnost ustavitve izvajanja funkcije, shranjevanja stanja in poznejšega nadaljevanja.

Kaj je Python Return?

Izjava o vračanju, za razliko od izjave o donosu, izstopi iz funkcije in vrne vrednost svojemu klicatelju. Funkcije vrnejo vrednost svojim klicateljem in tiste, ki so bolj proceduralne narave, izrecno ne vrnejo ničesar. Medtem ko ima lahko funkcija več izjav o vračanju, lahko za kateri koli klic funkcije kličemo le enega od njih.

Ponavadi se izjava na povratku pojavi na samem koncu funkcijskega bloka, da vrne končni rezultat izvajanja vseh stavkov v tej funkciji. Vendar se lahko v funkcijskem bloku pojavi tudi prej, da ustavi izvrševanje vseh naslednjih stavkov v tem bloku. S tem se takoj začne izvedba programa pri klicatelju. Če ni podana nobena vrednost, je enakovredna vrsta vrnjenega predmeta v Pythonu "None".

Razlika med donosom Python in vrnitvijo

  1. Osnove, povezane z donosom in vrnitvijo Python-a

    • Izjava o donosu se uporablja v generatorjih Python-a za nadomestitev vrnitve funkcije za pošiljanje vrednosti klicatelju brez uničenja lokalnih spremenljivk. Generator je posebna funkcija v Pythonu, ki vrne objekt generatorja klicatelju in ne podatkovni vrednosti.
    • Izjava o vračanju, za razliko od izjave o donosu, izstopi iz funkcije in vrne vrednost svojemu klicatelju. Ponavadi se izjava na povratku pojavi na samem koncu funkcijskega bloka, da vrne končni rezultat izvajanja vseh stavkov v tej funkciji. Vse funkcije vrnejo vrednost in če ni podana vrednost, bo vrnila "Brez".
  1. Generatorji v primerjavi s funkcijami v Python Yield in Return

    • Izkaz donosa se izrecno uporablja pri generatorjih Python. Sintaktično je generator funkcija s trditvijo o donosu. Medtem ko ima lahko funkcija več izjav o vračanju, lahko za kateri koli klic funkcije kličemo le enega od njih.
    • Za razliko od funkcije, ki se vrne samo enkrat, lahko generatorji zaustavijo izvajanje in prinesejo vmesne rezultate. Vsak generator je opredeljen kot funkcija, toda namesto povratne ključne besede se v funkcionalnem bloku uporablja ključna beseda donos, ki označuje, da je vrnjena vrednost le začasna in se lahko celoten generator nadaljuje, tudi ko dobite vrnjeno vrednost..
  1. Izvedba donosa in vrnitve Pythona

    • Izjava za vrnitev konča izvedbo funkcije in svojemu klicatelju vrne vrednost. Funkcije vrnejo vrednost svojim klicateljem in tiste, ki so bolj proceduralne narave, izrecno ne vrnejo ničesar. V bistvu je vzeti izhod iz funkcije in uničiti vse lokalne vrednosti znotraj.
    • Po drugi strani izjava o donosu nadomesti povratno vrednost funkcije, da ustavi njeno izvajanje in pošlje vrednost svojemu klicatelju, ne da bi uničila lokalne spremenljivke. Vendar, za razliko od funkcije vrnitve, donosi nadaljuje z izvajanjem funkcije, od koder je bila izključena.

Donos Python vs. Return - Primerjalna tabela

Povzetek donosa in vrnitve Pythona

Sintaktično je donos ključna beseda, ki jo je mogoče uporabiti tako kot ključno besedo vrnitev, razen, če stavek return vrne funkcijo in vrne vrednost svojemu klicatelju. Funkcionalnost izjave o vračanju je, da sprejme vnose in nekaj vrne klicatelju. Za razliko od donosa se izjava o donosu izrecno uporablja za definiranje generatorjev in nadomešča vrnitev vrednosti funkcije za zaustavitev njene izvedbe, pri čemer ostanejo lokalne spremenljivke nedotaknjene, medtem ko stavek vračanja uniči vse lokalne spremenljivke znotraj.