Python

Python Yield vs. Vrni se

Python Yield vs. Vrni se

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 številk

myList = [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 številk

myList = [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.

Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...
Najboljše laboratorijske igre Oculus App
Če ste lastnik slušalk Oculus, morate biti seznanjeni s stranskim nalaganjem. Sideloading je postopek namestitve vsebine, ki ni shranjena v slušalke. ...
10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...