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 številkmyList=[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 številkmyList=[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.