A hozam egy Python beépített kulcsszó, amely a függvény értékeit adja vissza. A függvény végrehajtása nincs befejezve. Ehelyett visszaadja az értéket a hívónak, és fenntartja a függvény végrehajtási állapotát. A függvény végrehajtása az utolsó hozamkimutatásból folytatódik. A hozam lehetővé teszi számunkra, hogy értékek sorozatát állítsuk elő, nem pedig egy értéket. A funkciótest belsejében használják. A hozamot tartalmazó függvényt generátorfüggvénynek nevezik.
Számos előnye van a kulcsszó hozamának. Például vezérli a memória elosztását és elmenti a helyi változó állapotot. Ez azonban növeli a kód összetettségét.
Ez a cikk példákkal magyarázza a hozam kulcsszó használatát.
A hozam szintaxisa
A hozamszintaxis egyszerű és egyértelmű. A hozamot a hozam kulcsszóval és a szintaxissal kezdjük az alábbiak szerint:
hozamértékPéldák
Most nézzünk meg példákat a hozamkimutatások használatának és működésének megértésére. Hagyományosan a return kulcsszó megszünteti a program végrehajtását és a végén visszaad egy értéket, míg a hozam visszaadja az értékek sorrendjét. Nem tárolja az értéket a memóriában, és futás közben adja vissza az értéket a hívónak. Az alábbi példában egy generátorfüggvény van meghatározva a szökőév meghatározásához. Ugrás az az év, amikor a néggyel osztható maradékként nullát ad vissza. A hozam kulcsszó visszaadja a szökőév értékét a hívónak. Amint megkapja az ugróév értékét, szünetelteti a program végrehajtását, visszaadja az értéket, majd folytatja a végrehajtást onnan, ahol leállították.
# generátor deklarálása a szökőév meghatározásáhozdef leapfunc (my_list):
én a listámban:
ha (i% 4 == 0):
# kihozatal
hozam i
# az évek listájának deklarálása
év_lista = [2010,2011,2012,2016,2020,2024]
print ("A szökőév értékeinek nyomtatása")
x-re a leapfunc-ban (év_lista):
nyomtatás (x)
Kimenet
A kimenet a szökőévek sorozatát mutatja.
Lássunk egy másik példát, ahol a generátor függvény különböző számokat és húrokat ad.
# generátorfüggvény deklarálásadef myfunc ():
hozam "Mark"
hozam "John"
hozam: "Taylor"
hozam "Ivan"
10. hozam
hozam 20
hozam 30
hozam 40
hozam 50
# hívás és iterálás a generátor funkción keresztül
i-re a myfunc-ban ():
# értékek nyomtatása
nyomtatás (i)
Kimenet
Vezessünk létre egy generátorfüggvényt a számsorozat kockaértékének kiszámításához és kinyomtatásához. A kockaértékeket 1-től 30-ig generáljuk.
# generátorfüggvény deklarálása a kockaérték kiszámításáhozdef calcube ():
val = 1
# a végtelen míg hurok
míg True:
# számoló kocka
hozam val * val * val
# növeli az értéket 1-gyel
val = val + 1
print ("A kockaértékek a következők:")
# a generátor funkció hívása
i számológépben ():
ha i> 30:
szünet
nyomtatás (i)
Kimenet
A kimeneten a kocka értéke kevesebb, mint 30.
Következtetés
A Yield egy beépített Python kulcsszó, amely nem szünteti meg a program végrehajtását és értékek sorozatát generálja. A visszatérő kulcsszóhoz képest a hozam kulcsszó több értéket produkál, és visszatér a hívóhoz. Ez a cikk példákkal ismerteti a Python hozamot.