Výťažok Pythonu vs. návrat

Python Yield Vs Return



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 čísel

myList=[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 čísel

myList=[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.