Výťažok Pythonu

Python Yield



Yield je vstavané kľúčové slovo v jazyku Python, ktoré vracia hodnoty z funkcie. Vykonávanie funkcie nie je ukončené. Skôr vráti hodnotu volajúcemu a zachová stav vykonania funkcie. Vykonávanie funkcie sa obnoví z posledného výkazu výnosov. Výťažok nám umožňuje vytvoriť sekvenciu hodnôt, nie jednu hodnotu. Používa sa vo funkčnom tele. Funkcia, ktorá obsahuje výťažok, je známa ako funkcia generátora.







Získanie kľúčového slova má niekoľko výhod. Riadi napríklad alokáciu pamäte a ukladá stav lokálnych premenných. To však zvyšuje zložitosť kódu.



Tento článok vysvetľuje použitie kľúčového slova yield ako príklad.



Syntax výťažku

Syntax výnosov je jednoduchá a priamočiara. Výťažok sa spustí pomocou kľúčového slova a syntaxe výnosov takto:





výťažokhodnotu

Príklady

Teraz sa pozrime na príklady na pochopenie použitia a fungovania výkazov výnosov. Kľúčové slovo return tradične ukončí spustenie programu a vráti hodnotu na konci, zatiaľ čo výnos vráti postupnosť hodnôt. Neuloží hodnotu do pamäte a vráti hodnotu volajúcemu za behu. V nižšie uvedenom príklade je definovaná funkcia generátora na určenie priestupného roku. Skok je ten rok, keď je deliteľný štyrmi a vráti zvyšok ako nulu. Kľúčové slovo výnos vráti volajúcemu hodnotu priestupného roku. Pretože získa hodnotu priestupného roku, pozastaví spustenie programu, vráti hodnotu a potom obnoví spustenie od miesta, kde bolo zastavené.

#deklarovanie generátora na určenie priestupného roku
defleapfunc(môj_list):
preivmôj_list:
keby(i%4==0):
#pomocou výťažku
výťažoki
#deklarovanie zoznamu rokov
zoznam_rokov=[2010,2011,2012,2016,2020,2024]
vytlačiť(„Tlač hodnôt priestupného roku“)
preXvleapfunc(zoznam_rokov):
vytlačiť(X)

Výkon



Výstup ukazuje sériu priestupných rokov.

Pozrime sa na ďalší príklad, kde funkcia generátora prináša rôzne čísla a reťazce.

#deklarovanie funkcie generátora
defmyfunc():
výťažok 'Mark'
výťažok „John“
výťažok 'Taylor'
výťažok „Ivan“
výťažok 10
výťažok dvadsať
výťažok 30
výťažok 40
výťažok päťdesiat
#volanie a opakovanie cez funkciu generátora
preivmyfunc():
#tlač hodnôt
vytlačiť(i)

Výkon

Implementujme funkciu generátora na výpočet a vytlačenie hodnoty kocky sekvencie čísel. Generujeme hodnoty kocky od 1 do 30.

#deklarovanie funkcie generátora na výpočet hodnoty kocky
defkalkulačka():
hod=1
#nekonečná slučka
kým Pravda:
#kalkulačná kocka
výťažokval * val * val
#zvýšenie hodnoty o 1
hod=val +1
vytlačiť(„Hodnoty kocky sú:“)
#volanie funkcie generátora
preivkalkulačka():
kebyi>30:
prestávka
vytlačiť(i)

Výkon

Výstup ukazuje hodnotu kocky menšiu ako 30.

Záver

Yield je vstavané kľúčové slovo v jazyku Python, ktoré neukončí spustenie programu a nevygeneruje sériu hodnôt. V porovnaní s kľúčovým slovom return produkuje kľúčové slovo yield viac hodnôt a vracia sa volajúcemu. Tento článok vysvetľuje výnos Pythonu s príkladmi.