Python prinos vs. povratak

Python Yield Vs Return



Python je široko korišteni programski jezik opće namjene novijeg doba. Prinos je ugrađena ključna riječ Python koja se koristi za stvaranje funkcija generatora. Njegova funkcija generira niz rezultata. Pauzira izvršenje programa, šalje vrijednost rezultata natrag pozivatelju i nastavlja izvršavanje od posljednjeg prinosa. Osim toga, funkcija prinosa šalje generirani niz rezultata u obliku objekta generatora. S druge strane, return je također ugrađena ključna riječ u Pythonu koja završava funkciju i šalje vrijednost natrag pozivatelju.

Ovaj članak prikazuje primjere razlika između prinosa i prinosa.







Razlike između prinosa i povrata

Za početak, postoje mnoge istaknute razlike između prinosa i prinosa. Razmotrimo najprije što je to.



Povratak Prinos
Izraz return vraća pozivatelju samo jednu vrijednost. Izjava o prinosu može vratiti niz pozivatelja u obliku objekta generatora.
Povratak izlazi iz funkcije, a u slučaju petlje odbacuje petlju. To je posljednji izraz koji se stavlja unutar funkcije. Ne ukida lokalne varijable funkcije. Obustavlja izvršenje i šalje vrijednost natrag pozivatelju, te nastavlja izvođenje programa od posljednje izjave o prinosu.
Logično, funkcija bi trebala imati samo povratni izraz. Unutar funkcije može biti više izjava o prinosu.
Izraz return može se pokrenuti samo jednom. Izjava o prinosu može se pokrenuti više puta.
Naredba return smještena je unutar regularne Python funkcije. Izjava o prinosu pretvara regularnu funkciju u funkciju generatora.

Primjer 1: Povrat u odnosu na prinos

Pogledajmo sada kroz primjere razliku između izjava o povratu i prinosu. U dolje navedenom primjeru programa koristili smo više izraza return. Možete primijetiti da će se izvršavanje programa završiti nakon prve naredbe return, a ostatak koda neće biti izveden.



#program za prikaz rada naredbe return

#definiranje brojčane varijable

broj1=10

#definiranje brojčane varijable

broj2=dvadeset

#creating funkcija za izvođenje aritmetičkih operacija

def mathOP():

#računavanje zbrojne vrijednosti

povratakbroj1+broj2

#računavanje razlike

povratakbroj1-broj2

#računavanje vrijednosti množenja

povratakbroj1*broj2

#računavanje vrijednosti podjele

povratakbroj1/broj2

#pozivanje funkcije

ispisati(mathOP())

Izlaz





U izlazu se može vidjeti da funkcija vraća samo prvu vrijednost, a program se prekida.



Da bismo izvršili sličan zadatak s više povratnih izraza, moramo stvoriti četiri različite funkcije za svaku vrstu aritmetičke operacije.

#program za prikaz rada naredbe return

#definiranje brojčane varijable

broj1=10

#definiranje brojčane varijable

broj2=dvadeset

#creating funkcija za izvođenje aritmetičkih operacija

def sumOP():

#računavanje zbrojne vrijednosti

povratakbroj1+broj2

def oduzetiOP():

#računavanje razlike

povratakbroj1-broj2

def množenjeOP():

#računavanje vrijednosti množenja

povratakbroj1*broj2

def DivisionOP():

#računavanje vrijednosti podjele

povratakbroj1/broj2

#pozivanje funkcije zbroja

ispisati('Ukupna vrijednost je:',sumOP())

#pozivanje funkcije oduzimanja

ispisati('Vrijednost razlike je:',oduzmi OP())

#pozivanje funkcije množenja

ispisati('Vrijednost množenja je:',množenjeOP())

#pozivanje funkcije dijeljenja

ispisati('Vrijednost podjele je:',podjelaOP())

Izlaz

Ove više aritmetičkih operacija možemo izvesti unutar jedne funkcije generatora s više iskaza prinosa.

#program koji prikazuje rad izjave o prinosu

#definiranje brojčane varijable

broj1=10

#definiranje brojčane varijable

broj2=dvadeset

#creating funkcija za izvođenje aritmetičkih operacija

def mathOP():

#računavanje zbrojne vrijednosti

prinosbroj1+broj2

#računavanje razlike

prinosbroj1-broj2

#računavanje vrijednosti množenja

prinosbroj1*broj2

#računavanje vrijednosti podjele

prinosbroj1/broj2

#pozivanje funkcije

ispisati('Ispis vrijednosti:')

#using for loop za pristup vrijednostima iz objekta generatora

zaja u mathOP -u():

ispisati(i)

Izlaz

Primjer 2: Povrat u odnosu na prinos

Pogledajmo još jedan primjer iskaza povrata i prinosa. U danom primjeru imamo popis brojeva koji se kao argument prosljeđuje funkciji mod (). Izvodimo operaciju modula na svakom broju popisa i provjeravamo koji su to brojevi podijeljeni s 10 i vraća nulu kao ostatak vrijednosti.

Prvo, implementirajmo ovaj primjer u našu Python skriptu s naredbom return.

#definiranje popisa brojeva

myList=[10,dvadeset,25,30,35,40,pedeset]

#definiranje funkcije za izvođenje operacije modula

def mod(myList):

zaja na mojoj listi:

#izvođenje modularnog rada

ako(i%10==0):

povrataki

ispisati(protiv(myList))

Izlaz

Izraz return samo pozivatelju vraća prvi broj i prekida izvršavanje funkcije.

Sada, implementirajmo isti primjer u našu Python skriptu s izjavom yield.

#definiranje popisa brojeva

myList=[10,dvadeset,25,30,35,40,pedeset]

#definiranje funkcije za izvođenje operacije modula

def mod(myList):

zaja na mojoj listi:

#izvođenje modularnog rada

ako(i%10==0):

#izjava o prinosu

prinosi

zaja u mod(myList):

ispisati(i)

Izlaz

Zaključak

Zaključno, povrat i prinos dvije su ugrađene Python ključne riječi ili izrazi. Naredba return koristi se za vraćanje vrijednosti pozivatelju iz funkcije i prekida izvršavanje programa, dok izjava yield proizvodi objekt generatora i može vratiti više vrijednosti pozivatelju bez prekidanja izvođenja programa. Ovaj članak popisuje sve istaknute razlike između izjava o prinosu i prinosu s primjerima.