Python je v zadnjem času pogosto uporabljen splošni programski jezik. Donos je vgrajena ključna beseda Python, ki se uporablja za ustvarjanje funkcij generatorja. Njegova funkcija ustvarja vrsto rezultatov. Začasno ustavi izvajanje programa, pošlje vrednost rezultata nazaj kličočemu in nadaljuje izvajanje iz zadnjega iznosa. Poleg tega funkcija yield pošlje generirane nize rezultatov v obliki predmeta generatorja. Po drugi strani pa je return tudi vgrajena ključna beseda v Pythonu, ki zaključi funkcijo in vrednost vrne klicatelju.
Ta članek s primeri opisuje razlike med donosom in donosi.
Razlike med donosom in donosom
Za začetek obstaja veliko vidnih razlik med donosom in donosom. Najprej se pogovorimo, kaj so to.
Vrni se | Donos |
---|---|
Stavek return vrne klicatelju samo eno vrednost. | Izjava yield lahko kličočemu vrne vrsto rezultatov v obliki predmeta generatorja. |
Vrnitev zapusti funkcijo, v primeru zanke pa zanko zavrne. To je zadnji stavek, ki je vstavljen v funkcijo. | Ne odpravi lokalnih spremenljivk funkcije. Začasno ustavi izvajanje in vrednost vrne klicatelju ter nadaljuje izvajanje programa iz zadnjega izpisa donosa. |
Logično je, da mora imeti funkcija samo stavek return. | V funkciji je lahko več kot en stavek o donosu. |
Izjava o vrnitvi se lahko zažene samo enkrat. | Izkaz donosnosti se lahko izvaja večkrat. |
Stavek return se nahaja znotraj običajne funkcije Python. | Stavek yield pretvori običajno funkcijo v funkcijo generatorja. |
Primer1: Vrnitev proti. Donos
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 prvi vrnilni izjavi, preostala koda pa se ne bo izvedla.
#a program za prikaz delovanja povratne izjave#defining številske spremenljivke
število1 = 10
#defining številske spremenljivke
število2 = 20
# ustvarjanje funkcije za izvajanje aritmetičnih operacij
def mathOP ():
# izračun vrednosti vsote
vrne num1 + num2
# izračunavanje razlike
vrne num1-num2
# izračun množilne vrednosti
vrne num1 * num2
# izračun vrednosti delitve
vrnitev num1 / num2
#clicing funkcije
natisni (mathOP ())
Izhod
V izhodu je razvidno, da funkcija vrne samo prvo vrednost in program se zaključi.
Za izvedbo podobne naloge z več vrnilnimi stavki moramo za vsako vrsto aritmetične operacije ustvariti štiri različne funkcije.
#a program za prikaz delovanja povratne izjave#defining številske spremenljivke
število1 = 10
#defining številske spremenljivke
število2 = 20
# ustvarjanje funkcije za izvajanje aritmetičnih operacij
def sumOP ():
# izračun vrednosti vsote
vrne num1 + num2
def odštevanjeOP ():
# izračunavanje razlike
vrne num1-num2
def množenje OP ():
# izračun množilne vrednosti
vrnitev num1 * num2
def divisionOP ():
# izračun vrednosti delitve
vrnitev num1 / num2
# klicanje funkcije vsote
print ("Vrednost vsote je:", sumOP ())
#clicing funkcije odštevanja
print ("Vrednost razlike je:", odštej OP ())
#clicing funkcije množenja
print ("Množilna vrednost je:", multiplicationOP ())
#clicing funkcije delitve
print ("Vrednost delitve je:", divisionOP ())
Izhod
Te večkratne aritmetične operacije lahko izvajamo znotraj ene same funkcije generatorja z več izjavami o donosu.
#a program, ki prikazuje delovanje izkaza donosa#defining številske spremenljivke
število1 = 10
#defining številske spremenljivke
število2 = 20
# ustvarjanje funkcije za izvajanje aritmetičnih operacij
def mathOP ():
# izračun vrednosti vsote
donos num1 + num2
# izračunavanje razlike
donos num1-num2
# izračun množilne vrednosti
donos num1 * num2
# izračun vrednosti delitve
donos num1 / num2
#clicing funkcije
print ("Tiskanje vrednosti:")
#use for zanka za dostop do vrednosti iz predmeta generatorja
za i v mathOP ():
natisni (i)
Izhod
Primer2: Vrnitev proti. Donos
Poglejmo še en primer izjav o donosu in donosu. V danem primeru imamo seznam števil, ki se kot argument posreduje funkciji mod (). Izvajamo operacijo modula na vsaki številki seznama in preverjamo, katere so te številke, če jih delimo z 10, vrnemo nič kot preostalo vrednost.
Najprej uporabimo ta primer v našem skriptu Python z izjavo return.
#definiranje seznama številkmyList = [10,20,25,30,35,40,50]
#definiranje funkcije za izvajanje operacije modula
def mod (myList):
za i v mojem seznamu:
# izvajanje modula
če (i% 10 == 0):
vrnitev i
natisni (mod (moj seznam))
Izhod
Stavek return vrne klicatelju samo prvo številko in zaključi izvajanje funkcije.
Zdaj pa uporabimo isti primer v našem skriptu Python z izjavo yield.
#definiranje seznama številkmyList = [10,20,25,30,35,40,50]
#definiranje funkcije za izvajanje operacije modula
def mod (myList):
za i v mojem seznamu:
# izvajanje modula
če (i% 10 == 0):
# izjava o donosu
donos i
za i v modu (myList):
natisni (i)
Izhod
Zaključek
Na koncu sta donos in donos dve vgrajeni ključni besedi ali stavki Python. Stavek return se uporablja za vrnitev vrednosti klicatelju iz funkcije in konča izvajanje programa, medtem ko stavek yield ustvari objekt generatorja in lahko vrne več vrednosti kličočemu, ne da bi končal izvajanje programa. Ta članek s primeri navaja vse vidne razlike med izjavami o donosu in donosu.