Donos Pythona v primerjavi z donosom

Python Yield Vs Return



Python je splošno uporabljen programski jezik splošnega namena v zadnjem času. Donos je vgrajena ključna beseda Python, ki se uporablja za ustvarjanje funkcij generatorja. Njegova funkcija ustvarja vrsto rezultatov. Začasno ustavi izvajanje programa, vrednost klicatelja pošlje nazaj in nadaljuje z izvajanjem od zadnjega donosa. Poleg tega funkcija prinaša generirano serijo rezultatov v obliki predmeta generatorja. Po drugi strani pa je return tudi vgrajena ključna beseda v Pythonu, ki prekine funkcijo in pošlje vrednost nazaj klicatelju.

Ta članek opisuje razlike med donosom in donosom s primeri.







Razlike med donosom in donosom

Za začetek je med donosom in donosom veliko pomembnih razlik. Najprej se pogovorimo, kaj so to.



Vrnitev Donos
Stavek return klicatelju vrne samo eno vrednost. Izjava o izkoristku lahko klicatelju vrne vrsto rezultatov v obliki predmeta generatorja.
Vrnitev zapusti funkcijo, v primeru zanke pa zanko zavrne. To je zadnji stavek, ki se vstavi v funkcijo. Ne odpravlja lokalnih spremenljivk funkcije. Začasno ustavi izvajanje in vrednost pošlje klicatelju ter nadaljuje izvajanje programa iz zadnjega stavka izkoristka.
Logično bi morala imeti funkcija samo stavek return. Znotraj funkcije je lahko več izjav o izkoristku.
Stavek return se lahko izvaja samo enkrat. Izjavo o donosu se lahko izvaja večkrat.
Stavek return je nameščen v običajni funkciji Python. Izjava o izkoristku pretvori običajno funkcijo v funkcijo generatorja.

Primer 1: Donos v primerjavi z donosom

Zdaj pa poglejmo razliko med izjavami o donosu in donosu skozi primere. V spodnjem primeru programa smo uporabili več stavkov return. Opazite lahko, da se bo izvajanje programa končalo po prvem stavku return, preostala koda pa ne bo izvedena.



#a program za prikaz delovanja stavka return

#definiranje številske spremenljivke

številka 1=10

#definiranje številske spremenljivke

številka 2=dvajset

#creating funkcija za izvajanje aritmetičnih operacij

def mathOP():

#izračunavanje vsote vrednosti

vrnitevštevilka 1+številka 2

#izračunavanje razlike

vrnitevštevilka 1-številka 2

#izračunavanje vrednosti množenja

vrnitevštevilka 1*številka 2

#računavanje vrednosti delitve

vrnitevštevilka 1/številka 2

#klic funkcije

tiskanje(mathOP())

Izhod





V izhodu je razvidno, da funkcija vrne samo prvo vrednost, program pa se konča.



Za izvedbo podobne naloge z več povratnimi stavki moramo ustvariti štiri različne funkcije za vsako vrsto aritmetične operacije.

#a program za prikaz delovanja stavka return

#definiranje številske spremenljivke

številka 1=10

#definiranje številske spremenljivke

številka 2=dvajset

#creating funkcija za izvajanje aritmetičnih operacij

def sumOP():

#izračunavanje vsote vrednosti

vrnitevštevilka 1+številka 2

def odštej OP():

#izračunavanje razlike

vrnitevštevilka 1-številka 2

def množenjeOP():

#izračunavanje vrednosti množenja

vrnitevštevilka 1*številka 2

def DivisionOP():

#računavanje vrednosti delitve

vrnitevštevilka 1/številka 2

#klic funkcije vsote

tiskanje('Vsota vrednosti je:',sumOP())

#klic funkcije odštevanja

tiskanje('Vrednost razlike je:',odštej OP())

#klic funkcije množenja

tiskanje('Vrednost množenja je:',množenjeOP())

#klicanje funkcije deljenja

tiskanje('Vrednost delitve je:',divizijaOP())

Izhod

Te več aritmetičnih operacij lahko izvedemo znotraj ene same funkcije generatorja z več stavki izkoristka.

#a program, ki prikazuje delovanje izjave o donosu

#definiranje številske spremenljivke

številka 1=10

#definiranje številske spremenljivke

številka 2=dvajset

#creating funkcija za izvajanje aritmetičnih operacij

def mathOP():

#izračunavanje vsote vrednosti

donosštevilka 1+številka 2

#izračunavanje razlike

donosštevilka 1-številka 2

#izračunavanje vrednosti množenja

donosštevilka 1*številka 2

#računavanje vrednosti delitve

donosštevilka 1/številka 2

#klic funkcije

tiskanje('Tiskanje vrednosti:')

#using zanka za dostop do vrednosti iz objekta generatorja

zasem v matematiki():

tiskanje(jaz)

Izhod

Primer 2: donos v primerjavi z donosom

Poglejmo še en primer izjav o donosu in donosu. V danem primeru imamo seznam številk, ki se posreduje funkciji mod () kot argument. Operacijo modula izvajamo na vsakem številu seznama in preverjamo, katere so te številke, če jih deljeno z 10 vrnemo nič kot preostalo vrednost.

Najprej uvedimo ta primer v naš skript Python z izjavo return.

#definiranje seznama številk

myList=[10,dvajset,25,30,35,40,petdeset]

#definiranje funkcije za izvajanje operacije po modulu

def mod(myList):

zajaz na mojem seznamu:

#izvajanje modularnega delovanja

če(jaz%10==0):

vrnitevjaz

tiskanje(proti(myList))

Izhod

Stavek return klicatelju vrne samo prvo številko in zaključi izvajanje funkcije.

Zdaj pa implementirajmo isti primer v naš skript Python z izjavo yield.

#definiranje seznama številk

myList=[10,dvajset,25,30,35,40,petdeset]

#definiranje funkcije za izvajanje operacije po modulu

def mod(myList):

zajaz sem na mojem seznamu:

#izvajanje modularnega delovanja

če(jaz%10==0):

#izkaz donosa

donosjaz

zajaz v mod(myList):

tiskanje(jaz)

Izhod

Zaključek

Skratka, donos in donos sta dve vgrajeni ključni besedi ali izjavi Python. Stavek return se uporablja za vrnitev vrednosti klicatelju iz funkcije in konča izvajanje programa, medtem ko izjava yield ustvari objekt generatorja in lahko klicatelju vrne več vrednosti, ne da bi prekinil izvajanje programa. Ta članek navaja vse vidne razlike med izjavami o donosu in donosom s primeri.