Python

Donos Pythona

Donos Pythona

Yield je vgrajena ključna beseda Python, ki vrne vrednosti iz funkcije. Izvedba funkcije se ne zaključi. Namesto tega vrne vrednost klicatelju in vzdržuje stanje izvajanja funkcije. Izvajanje funkcije se nadaljuje z zadnjim izpisom donosa. Donos nam omogoča, da dobimo zaporedje vrednosti namesto ene vrednosti. Uporablja se znotraj funkcionalnega telesa. Funkcija, ki vsebuje izjavo o donosu, je znana kot funkcija generatorja.

Ključna beseda yield ima več prednosti. Na primer, nadzoruje dodelitev pomnilnika in shrani stanje lokalne spremenljivke. Vendar povečuje zapletenost kode.

Ta članek s primeri pojasnjuje uporabo ključne besede yield.

Sintaksa donosa

Sintaksa donosnosti je preprosta in enostavna. Donos se začne s ključno besedo yield in sintakso, kot sledi:

vrednost donosa

Primeri

Zdaj pa si oglejmo primere za razumevanje uporabe in del izjav o donosih. Ključna beseda return tradicionalno zaključi izvajanje programa in na koncu vrne vrednost, medtem ko yield vrne zaporedje vrednosti. Vrednosti ne shrani v pomnilnik in jo med izvajanjem vrne klicatelju. V spodnjem primeru je definirana funkcija generatorja za določanje prestopnega leta. Preskok je tisto leto, ko je deljivo s štirimi vrne nič kot preostanek. Ključna beseda yield klicatelju vrne vrednost prestopnega leta. Ko bo dobil vrednost prestopnega leta, bo zaustavil izvajanje programa, vrnil vrednost in nato nadaljeval izvajanje od tam, kjer je bilo ustavljeno.

#declaring generator za določitev prestopnega leta
def leapfunc (moj_list):
za i na my_list:
če (i% 4 == 0):
#uporaba donosa
donos i
#declaring seznam let
year_list = [2010,2011,2012,2016,2020,2024]
print ("Tiskanje vrednosti prestopnega leta")
za x v leapfunc (seznam_ let):
natisni (x)

Izhod

Rezultat prikazuje vrsto prestopnih let.

Poglejmo še en primer, kjer funkcija generatorja daje različna števila in nize.

#declaring generator funkcije
def myfunc ():
donos "Oznaka"
donos "John"
donos "Taylor"
donos "Ivan"
donos 10
donos 20
donos 30
donos 40
donos 50
#calling in iterating skozi funkcijo generatorja
za i v myfunc ():
#printing vrednosti
natisni (i)

Izhod

Izvedimo funkcijo generatorja za izračun in izpis kocke vrednosti zaporedja števil. Ustvarjamo vrednosti kocke od 1 do 30.

#declaring generator funkcije za izračun vrednosti kocke
def calcube ():
val = 1
# neskončna zanka while
medtem ko je True:
#kalkulirajoča kocka
donos val * val * val
#povečanje vrednosti za 1
val = val + 1
print ("Vrednosti kocke so:")
#calling generator generator
za i v calcube ():
če je> 30:
odmor
natisni (i)

Izhod

Izhod prikazuje vrednost kocke, manjšo od 30.

Zaključek

Yield je vgrajena ključna beseda Python, ki ne konča izvajanja programa in ustvari vrsto vrednosti. Ključna beseda yield v primerjavi s ključno besedo return ustvari več vrednosti in se vrne klicatelju. Ta članek s primeri pojasnjuje Python Yield.

Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...
Najboljši emulatorji igralne konzole za Linux
V tem članku bo navedena priljubljena programska oprema za emulacijo igralne konzole, ki je na voljo za Linux. Emulacija je sloj združljivosti program...
Najboljši Linux Distros za igre na srečo v letu 2021
Operacijski sistem Linux je daleč od prvotnega, preprostega, strežniškega videza. Ta OS se je v zadnjih letih izjemno izboljšal in se je zdaj razvil v...