Výtěžek Pythonu

Python Yield



Yield je klíčové slovo integrované v Pythonu, které vrací hodnoty z funkce. Provádění funkce není ukončeno. Místo toho vrací hodnotu volajícímu a udržuje stav spuštění funkce. Provádění funkce je obnoveno z posledního výnosu. Výtěžek nám umožňuje vytvořit sekvenci hodnot spíše než jednu hodnotu. Používá se uvnitř funkčního těla. Funkce, která obsahuje výpis výnosů, je známá jako funkce generátoru.







Získání klíčového slova má několik výhod. Řídí například přidělení paměti a ukládá stav místní proměnné. Zvyšuje to však složitost kódu.



Tento článek vysvětluje použití klíčového slova yield s příklady.



Syntaxe výtěžku

Syntaxe výtěžku je jednoduchá a přímá. Výtěžek je spuštěn pomocí klíčového slova a syntaxe yield následujícím způsobem:





výtěžekhodnota

Příklady

Nyní se podívejme na příklady, abychom porozuměli použití a fungování výkazů výnosů. Klíčové slovo return tradičně ukončí provádění programu a vrátí hodnotu na konci, zatímco yield vrátí posloupnost hodnot. Neukládá hodnotu do paměti a vrací hodnotu volajícímu za běhu. V níže uvedeném příkladu je definována funkce generátoru pro určení přestupného roku. Skok je ten rok, kdy dělitelný čtyřmi vrátí nulu jako zbytek. Klíčové slovo yield vrátí volajícímu hodnotu přestupného roku. Jakmile získá hodnotu přestupného roku, pozastaví provádění programu, vrátí hodnotu a poté obnoví provádění z místa, kde bylo zastaveno.

#deklarování generátoru k určení přestupného roku
defleapfunc(můj seznam):
provmůj seznam:
-li(i%4==0):
#použití výtěžku
výtěžek
#deklarování seznamu let
seznam let=[2010,2011,2012,2016,2020,2024]
tisk('Tisk hodnot přestupného roku')
proXvleapfunc(seznam let):
tisk(X)

Výstup



Výstup ukazuje sérii přestupných let.

Podívejme se na další příklad, kde funkce generátoru poskytuje různá čísla a řetězce.

#deklarování funkce generátoru
defmyfunc():
výtěžek 'Označit'
výtěžek 'John'
výtěžek 'Taylor'
výtěžek 'Ivan'
výtěžek 10
výtěžek dvacet
výtěžek 30
výtěžek 40
výtěžek padesátka
#volání a opakování prostřednictvím funkce generátoru
provmyfunc():
#tisk hodnot
tisk()

Výstup

Implementujme funkci generátoru pro výpočet a tisk hodnoty krychle sekvence čísel. Generujeme hodnoty krychle od 1 do 30.

#deklarování funkce generátoru pro výpočet hodnoty krychle
defkalkulačka():
hod=1
#nekonečná smyčka
zatímco Skutečný:
#kalkulační kostka
výtěžekval * val * val
#zvýšení hodnoty o 1
hod=val +1
tisk('Hodnoty krychle jsou:')
#volání funkce generátoru
provkalkulačka():
-li>30:
přestávka
tisk()

Výstup

Výstup ukazuje hodnotu krychle menší než 30.

Závěr

Yield je klíčové slovo integrované v Pythonu, které neukončí provádění programu a nevygeneruje řadu hodnot. Ve srovnání s klíčovým slovem return produkuje klíčové slovo yield více hodnot a vrací se volajícímu. Tento článek vysvětluje Python Yield s příklady.