Python ienesīgums pret atdevi

Python Yield Vs Return



Python ir pēdējā laikā plaši izmantota vispārējas nozīmes programmēšanas valoda. Ienesīgums ir iebūvēts Python atslēgvārds, ko izmanto ģeneratora funkciju izveidošanai. Tās funkcija rada virkni rezultātu. Tas aptur programmas izpildi, nosūta rezultāta vērtību atpakaļ zvanītājam un atsāk izpildi no pēdējās ražas. Turklāt ienesīguma funkcija ģenerētā rezultātu sēriju nosūta ģeneratora objekta veidā. No otras puses, atgriešanās ir arī Python iebūvēts atslēgvārds, kas pārtrauc funkciju un nosūta vērtību atpakaļ zvanītājam.

Šajā rakstā ar piemēriem ir izklāstītas atšķirības starp ienesīgumu un peļņu.







Atšķirības starp ienesīgumu un atdevi

Vispirms ir daudz redzamu atšķirību starp ienesīgumu un ienesīgumu. Vispirms apspriedīsim, kas tie ir.



Atgriezties Ienesīgums
Atgriešanās paziņojums zvanītājam atgriež tikai vienu vērtību. Ienesīguma paziņojums var atgriezt zvanītājam virkni rezultātu ģeneratora objekta veidā.
Atgriešanās iziet no funkcijas, un cilpas gadījumā tā noraida cilpu. Tas ir pēdējais paziņojums, kas jāievieto funkcijā. Tas neatceļ funkcijas vietējos mainīgos. Tas aptur izpildi un nosūta vērtību atpakaļ zvanītājam un turpina programmas izpildi no pēdējā ienesīguma pārskata.
Loģiski, ka funkcijai vajadzētu būt tikai atgriešanās paziņojumam. Funkcijā var būt vairāk nekā viens ienesīguma paziņojums.
Atgriešanās paziņojumu var izpildīt tikai vienu reizi. Ienesīguma pārskatu var izpildīt vairākas reizes.
Atgriešanās paziņojums ir ievietots parastajā Python funkcijā. Ienesīguma paziņojums parasto funkciju pārvērš ģeneratora funkcijā.

1. piemērs: atdeve pret ienesīgumu

Tagad, izmantojot piemērus, redzēsim atšķirību starp peļņas un ienesīguma paziņojumiem. Tālāk sniegtajā programmas paraugā mēs esam izmantojuši vairākus atgriešanās paziņojumus. Jūs varat novērot, ka programmas izpilde tiks pārtraukta pēc pirmā atgriešanās paziņojuma, bet pārējais kods netiks izpildīts.



#programma, lai parādītu atgriešanās paziņojuma darbību

#definē skaitļa mainīgo

num1=10

#definē skaitļa mainīgo

num2=divdesmit

#izveidojot funkciju aritmētisko darbību veikšanai

def mathOP():

#aprēķinot summas vērtību

atgrieztiesnum1+num2

#aprēķinot starpību

atgrieztiesnum1-num2

#reizināšanas vērtības aprēķināšana

atgrieztiesnum1*num2

#aprēķinot dalījuma vērtību

atgrieztiesnum1/num2

#zvanot funkcijai

drukāt(mathOP())

Izeja





Izvadē redzams, ka funkcija atgriež tikai pirmo vērtību un programma tiek pārtraukta.



Lai veiktu līdzīgu uzdevumu ar vairākiem atgriešanās paziņojumiem, mums ir jāizveido četras dažādas funkcijas katram aritmētiskās darbības veidam.

#programma, lai parādītu atgriešanās paziņojuma darbību

#definē skaitļa mainīgo

num1=10

#definē skaitļa mainīgo

num2=divdesmit

#izveidojot funkciju aritmētisko darbību veikšanai

def sumOP():

#aprēķinot summas vērtību

atgrieztiesnum1+num2

def atņemietOP():

#aprēķinot starpību

atgrieztiesnum1-num2

def reizināšanaOP():

#reizināšanas vērtības aprēķināšana

atgrieztiesnum1*num2

def divīzijaOP():

#aprēķinot dalījuma vērtību

atgrieztiesnum1/num2

#zvanot summas funkcijai

drukāt('Summas vērtība ir:',sumOP())

#zvanot atņemšanas funkcijai

drukāt('Atšķirības vērtība ir šāda:',atņemtOP())

#zvanot reizināšanas funkcijai

drukāt('Reizināšanas vērtība ir:',reizināšanaOP())

#zvana sadalīšanas funkcijai

drukāt('Sadalījuma vērtība ir:',divīzijaOP())

Izeja

Mēs varam veikt šīs vairākas aritmētiskās darbības vienā ģeneratora funkcijā ar vairākiem ienesīguma paziņojumiem.

#programma, lai parādītu ienesīguma pārskata darbību

#definē skaitļa mainīgo

num1=10

#definē skaitļa mainīgo

num2=divdesmit

#izveidojot funkciju aritmētisko darbību veikšanai

def mathOP():

#aprēķinot summas vērtību

ražanum1+num2

#aprēķinot starpību

ražanum1-num2

#reizināšanas vērtības aprēķināšana

ražanum1*num2

#aprēķinot dalījuma vērtību

ražanum1/num2

#zvanot funkcijai

drukāt('Vērtību drukāšana:')

#izmantojot cilpu, lai piekļūtu vērtībām no ģeneratora objekta

priekšes matemātikā():

drukāt(i)

Izeja

2. piemērs: atdeve pret ienesīgumu

Apskatīsim vēl vienu peļņas un ienesīguma pārskatu piemēru. Šajā piemērā mums ir skaitļu saraksts, kas tiek nodots funkcijai mod () kā arguments. Mēs veicam moduļa darbību katram saraksta numuram un pārbaudām, kādi ir šie skaitļi, dalot ar 10 atgriešanās nulli kā atlikuma vērtību.

Pirmkārt, īstenosim šo piemēru mūsu Python skriptā ar atgriešanās paziņojumu.

#definējot ciparu sarakstu

myList=[10,divdesmit,25,30,35,40,piecdesmit]

#definējot funkciju moduļa darbības veikšanai

def mod(myList):

priekšes savā sarakstā:

#veiktspējīga moduļa darbība

ja(i%10==0):

atgrieztiesi

drukāt(pret(myList))

Izeja

Atgriešanās paziņojums tikai atgriež zvanītājam pirmo numuru un pārtrauc funkcijas izpildi.

Tagad īstenosim to pašu piemēru mūsu Python skriptā ar peļņas paziņojumu.

#definējot ciparu sarakstu

myList=[10,divdesmit,25,30,35,40,piecdesmit]

#definējot funkciju moduļa darbības veikšanai

def mod(myList):

priekšes savā sarakstā:

#veiktspējīga moduļa darbība

ja(i%10==0):

#ienesīguma pārskats

ražai

priekšes modā(myList):

drukāt(i)

Izeja

Secinājums

Visbeidzot, atdeve un ienesīgums ir divi iebūvēti Python atslēgvārdi vai paziņojumi. Atgriešanās paziņojums tiek izmantots, lai atgrieztu vērtību zvanītājam no funkcijas un pārtrauktu programmas izpildi, savukārt ienesīguma paziņojums ģenerē ģeneratora objektu un var atgriezt vairākas vērtības zvanītājam, nepārtraucot programmas izpildi. Šajā rakstā ir uzskaitītas visas redzamās atšķirības starp peļņas un ienesīguma pārskatiem ar piemēriem.