Razlika između prinosa Pythona i povratka Pythona

Izjava o prinosu koristi se za definiranje generatora u Pythonu. Dakle, prije nego što uđemo u ono što tačno donosi, prvo moramo razumjeti koncept generatora. Generatori imaju značajnu ulogu u Pythonu i ako ste duboko u Python programiranju, vjerojatno ste već radili s Python generatorima. Generatori se koriste za stvaranje iteratora u Pythonu, ali s drugačijim pristupom.

Python Generatori su funkcije koje proizvode niz rezultata i mogu se dinamički pauzirati i ponovo pokrenuti. Generatori su prvi put dodani kao dodatna značajka u Python 2.2 i postali su standardni u Python 2.3. Iako su bili dovoljno snažni, funkcije generatora su značajno poboljšane u Python 2.5.

Kad su nam generatori dodani u Python 2.2, uvela je novu ključnu riječ "prinos" za kompatibilnost s nazad, za koju smo morali uvesti generatore iz modula _future_ da bismo ih koristili. To je promijenjeno u verziji Python 2.3 kada generatori postanu standardni i više nisu bili potrebni.

Izjava o prinosu zaustavlja izvršenje funkcije i vraća vrijednost pozivaču, uz spremanje stanja i kasnije nastavljanje, što znači da se cijeli generator i dalje može nastaviti nakon dobivanja povratne vrijednosti. Izjava o povratku završava izvršenje funkcije i vraća pozivajuću vrijednost natrag. Bez njega vaša funkcija ne vraća ništa. Pogledajmo dobro kada treba iskoristiti prinos i kada upotrijebiti return u Pythonu kako bismo bolje razumjeli razliku između to dvoje.

Što je prinos Python-a?

Izjava o prinosu koristi se u Python generatorima kako bi se zamijenio povratak funkcije kako bi se vrijednost vratila svom pozivaocu bez uništavanja lokalnih varijabli. Da biste bolje razumjeli kakvu ulogu igra izjava o prinosu u Python programiranju, morate razumjeti što su generatori.

Funkcije generatora proizvode se po definiciji poput uobičajenih funkcija, ali sadrže izjavu o prinosu. Ovo započinje s ključnom riječi "prinos" koja određuje objekt generatora koji se vraća pozivaocu. Generator je posebna funkcija u Pythonu koja vraća objekt generatora pozivaocu umjesto vrijednosti podataka. Prirodna ključna riječ ima jedinstvenu sposobnost zaustavljanja izvršavanja funkcije, spremanja stanja i kasnijeg nastavljanja.

Što je Python Povratak?

Izjava o povratu, za razliku od izjave o prinosu, izlazi iz funkcije i vraća pozivaocu vrijednost. Funkcije vraćaju vrijednost svojim pozivaocima, a one više proceduralne naravi izričito ne vraćaju ništa. Iako funkcija može imati više iskaza povratka, samo se jedan od njih može pozvati za bilo koji poziv funkcije.

Obično se izjava povrata pojavljuje na samom kraju funkcionalnog bloka da bi se vratio konačni rezultat izvršenja svih izjava sadržanih u toj funkciji. No može se pojaviti i ranije u funkcijskom bloku da zaustavi izvršavanje svih narednih izraza u tom bloku. Time se odmah nastavlja izvršavanje programa kod pozivatelja. Kada nije navedena nijedna vrijednost, ekvivalentna vrsta povratnog objekta na Pythonu je "None".

Razlika između prinosa Pythona i povratka

  1. Osnove povezane s prinosom i povratkom Pythona

    • Izjava o prinosu koristi se u Python generatorima kako bi se zamijenio povratak funkcije kako bi se vrijednost vratila svom pozivaocu bez uništavanja lokalnih varijabli. Generator je posebna funkcija u Pythonu koja vraća objekt generatora pozivaocu umjesto vrijednosti podataka.
    • Izjava o povratu, za razliku od izjave o prinosu, izlazi iz funkcije i vraća pozivaocu vrijednost. Obično se izjava povrata pojavljuje na samom kraju funkcionalnog bloka da bi se vratio konačni rezultat izvršenja svih izjava sadržanih u toj funkciji. Sve funkcije vraćaju vrijednost, a ako nije navedena vrijednost, vratit će se "Nema".
  1. Generatori vs funkcije u Python prinosu i povratku

    • Izjava o prinosu izričito se koristi s Python generatorima. Sintaktički, generator je funkcija s izjavom o prinosu. Iako funkcija može imati više iskaza povratka, samo se jedan od njih može pozvati za bilo koji poziv funkcije.
    • Za razliku od funkcije koja se vraća samo jednom, generatori mogu zaustaviti izvršenje i dati posredne rezultate. Svaki je generator definiran kao funkcija, ali umjesto povratne ključne riječi koristi se ključna riječ u okviru funkcionalnog bloka koja pokazuje da je povratna vrijednost samo privremena i da se cijeli generator može nastaviti čak i nakon dobivanja povratne vrijednosti.
  1. Izvršavanje prinosa i povratak Pythona

    • Izjava povratka prekida izvršenje funkcije i natrag pozivatelju vraća vrijednost. Funkcije vraćaju vrijednost svojim pozivaocima, a one više proceduralne naravi izričito ne vraćaju ništa. Ono što se u biti čini je uzeti izlaz iz funkcije i uništiti sve lokalne vrijednosti unutar.
    • Izjava o prinosu, s druge strane, zamjenjuje povratnu vrijednost funkcije kako bi obustavila njezino izvršavanje i vraća vrijednost natrag pozivaču bez uništavanja lokalnih varijabli. No, za razliku od povratne funkcije, iskorištavanje nastavlja izvršavanje funkcije s mjesta na kojem je stalo.

Prinos Python-a u odnosu na povratak: uporedni grafikon

Sažetak prinosa i povratka Pythona

Sintaktički, prinos je ključna riječ koja se može koristiti baš kao i ključna riječ povrat, osim što iskaz povrata prekida izvršenje vaše funkcije i vraća pozivaocu vrijednost. Funkcionalnost izjave povrata je da preuzme unose i nešto vrati pozivaocu. Za razliku od povrata, iskaz iskorištenja izričito se koristi za definiranje generatora, zamjenjujući povratnu vrijednost funkcije za zaustavljanje njezinog izvršavanja zadržavajući nepromijenjene lokalne varijable, dok izjava povrata uništava sve lokalne varijable unutar.