Python je v poslednej dobe široko používaný univerzálny programovací jazyk. The yield je vstavané kľúčové slovo Python, ktoré sa používa na vytváranie funkcií generátora. Jeho funkcia generuje sériu výsledkov. Pozastaví spustenie programu, vyšle hodnotu výsledku späť volajúcemu a pokračuje v vykonávaní od posledného výnosu. Okrem toho funkcia yield pošle generovanú sériu výsledkov vo forme objektu generátora. Na druhej strane návrat je tiež vstavané kľúčové slovo v Pythone, ktoré ukončuje funkciu a odosiela hodnotu späť volajúcemu.
Tento článok uvádza príklady rozdielov medzi výnosom a výnosmi.
Rozdiely medzi výnosom a výnosom
Na začiatku je veľa významných rozdielov medzi výnosom a výnosom. Najprv si povedzme, čo to je.
Návrat | Výťažok |
---|---|
Príkaz return vracia volajúcemu iba jednu hodnotu. | Príkaz výnos môže volajúcemu vrátiť sériu výsledkov vo forme objektu generátora. |
Návrat ukončí funkciu a v prípade slučky slučku zruší. Je to posledný príkaz, ktorý sa má vložiť do funkcie. | Neruší to lokálne premenné funkcie. Pozastaví vykonanie a pošle hodnotu späť volajúcemu a pokračuje vo vykonávaní programu z posledného výnosu. |
Logicky by mala mať funkcia iba príkaz return. | Vnútri funkcie môže byť viac ako jeden výťažok. |
Výkaz vrátenia môže byť spustený iba raz. | Výkaz výnosov môže bežať viackrát. |
Príkaz return je umiestnený v bežnej funkcii Pythonu. | Výpis výnosu prevádza bežnú funkciu na funkciu generátora. |
Príklad 1: Návrat vs. výnos
Teraz sa pozrime na rozdiel medzi výnosmi a výnosmi prostredníctvom príkladov. V nižšie uvedenom príklade programu sme použili viacnásobné návratové príkazy. Môžete si všimnúť, že spustenie programu sa skončí po prvom návratovom vyhlásení a zvyšok kódu sa nevykoná.
#program na zobrazenie fungovania príkazu return
#definovanie číselnej premennej
num1=10
#definovanie číselnej premennej
num2=dvadsať
#vytvorenie funkcie na vykonávanie aritmetických operácií
def mathOP():
#výpočet súhrnnej hodnoty
vrátiť sanum1+num2
#výpočet rozdielu
vrátiť sanum1-num2
#Výpočet hodnoty násobenia
vrátiť sanum1*num2
#výpočet hodnoty divízie
vrátiť sanum1/num2
#volanie funkcie
vytlačiť(mathOP())
Výkon
Na výstupe je vidieť, že funkcia vráti iba prvú hodnotu a program je ukončený.
Na vykonanie podobnej úlohy s viacerými návratovými príkazmi musíme pre každý typ aritmetickej operácie vytvoriť štyri rôzne funkcie.
#program na zobrazenie fungovania príkazu return#definovanie číselnej premennej
num1=10
#definovanie číselnej premennej
num2=dvadsať
#vytvorenie funkcie na vykonávanie aritmetických operácií
def sumOP():
#výpočet súhrnnej hodnoty
vrátiť sanum1+num2
def odčítaťOP():
#výpočet rozdielu
vrátiť sanum1-num2
def násobenie OP():
#Výpočet hodnoty násobenia
vrátiť sanum1*num2
def divíziaOP():
#výpočet hodnoty divízie
vrátiť sanum1/num2
#volanie funkcie súčtu
vytlačiť(„Celková hodnota je:“,sumOP())
#volanie funkcie odčítania
vytlačiť(„Rozdielová hodnota je:“,odčítaťOP())
#volanie funkcie násobenia
vytlačiť(„Hodnota násobenia je:“,násobenie OP())
#volanie deliacej funkcie
vytlačiť(„Hodnota rozdelenia je:“,divízia OP())
Výkon
Tieto viacnásobné aritmetické operácie môžeme vykonávať v rámci funkcie jedného generátora s viacerými výťažkami.
#program na zobrazenie fungovania výkazu výnosov#definovanie číselnej premennej
num1=10
#definovanie číselnej premennej
num2=dvadsať
#vytvorenie funkcie na vykonávanie aritmetických operácií
def mathOP():
#výpočet súhrnnej hodnoty
výťažoknum1+num2
#výpočet rozdielu
výťažoknum1-num2
#Výpočet hodnoty násobenia
výťažoknum1*num2
#výpočet hodnoty divízie
výťažoknum1/num2
#volanie funkcie
vytlačiť(„Tlač hodnôt:“)
#using for loop na prístup k hodnotám z objektu generátora
presom v mathOP():
vytlačiť(i)
Výkon
Príklad 2: Návrat vs. výnos
Pozrime sa na ďalší príklad výpisov výnosov a výnosov. V uvedenom príklade máme zoznam čísel, ktoré sú ako argument odovzdané funkcii mod (). Vykonávame operáciu modulu na každom čísle zoznamu a kontrolujeme, aké sú tieto čísla, ak sú delené 10 a ako zvyšnú hodnotu je vrátená nula.
Najprv implementujme tento príklad v našom skripte Python s príkazom return.
#definovanie zoznamu číselmyList=[10,dvadsať,25,30,35,40,päťdesiat]
#definovanie funkcie na vykonanie operácie modulu
def mod(myList):
preja v myList:
#výkon modulu
keby(i%10==0):
vrátiť sai
vytlačiť(proti(myList))
Výkon
Príkaz return vráti volajúcemu iba prvé číslo a ukončí výkon funkcie.
Teraz implementujme ten istý príklad do nášho skriptu Python pomocou príkazu yield.
#definovanie zoznamu číselmyList=[10,dvadsať,25,30,35,40,päťdesiat]
#definovanie funkcie na vykonanie operácie modulu
def mod(myList):
preja v myList:
#výkon modulu
keby(i%10==0):
#výkaz výnosov
výťažoki
preja v móde(myList):
vytlačiť(i)
Výkon
Záver
Na záver možno povedať, že návratnosť a výnos sú dve vstavané kľúčové slová alebo príkazy v jazyku Python. Príkaz return sa používa na vrátenie hodnoty volajúcemu z funkcie a ukončenie vykonávania programu, zatiaľ čo príkaz yield produkuje objekt generátora a môže vrátiť viac hodnôt volajúcemu bez ukončenia vykonávania programu. Tento článok uvádza zoznam všetkých významných rozdielov medzi výnosmi a výnosmi s príkladmi.