Rozdiel medzi výnosom Pythonu a výnosom Pythonu

Výnos sa používa na definovanie generátorov v Pythone. Takže skôr, ako sa dostaneme k tomu, čo presne prináša výnos, musíme najprv pochopiť pojem generátory. Generátory majú v Pythone významnú úlohu a ak ste hlboko v programovaní Pythonu, je pravdepodobné, že ste už spolupracovali s generátormi Pythonu. Generátory sa používajú na vytváranie iterátorov v Pythone, ale s iným prístupom.

Generátory Pythonu sú funkcie, ktoré vytvárajú postupnosť výsledkov a môžu byť dynamicky pozastavené a obnovené. Generátory boli prvýkrát pridané ako voliteľná funkcia v Pythone 2.2 a štandardné boli v Pythone 2.3. Aj keď boli dostatočne silné, funkcie generátorov boli v Pythone 2.5 výrazne vylepšené.

Keď boli generátory pridané späť do Pythonu 2.2, zaviedlo nové kľúčové slovo „výnos“ pre spätnú kompatibilitu, pre ktoré bolo potrebné importovať generátory z modulu _future_, aby sme ich mohli použiť. Toto sa zmenilo v Python verzie 2.3, keď sa generátory stali štandardmi a už to nebolo potrebné.

Výnosový výnos preruší vykonávanie funkcie a pošle hodnotu späť volajúcemu, pričom sa zachová stav a neskôr sa obnoví, čo znamená, že po získaní návratovej hodnoty sa môže stále obnoviť celý generátor. Príkaz na vrátenie ukončí vykonanie funkcie a pošle volajúcemu späť hodnotu. Bez neho vaša funkcia nevráti nič. Pozrime sa dobre, kedy použiť výnos a kedy použiť návrat v Pythone, aby sme lepšie porozumeli rozdielu medzi nimi.

Čo je to Python Yield?

Výťažok sa používa v generátoroch Pythonu ako náhrada za návrat funkcie na odoslanie hodnoty späť jej volajúcemu bez zničenia miestnych premenných. Aby ste lepšie pochopili, akú úlohu hrá vyhlásenie o výnose v programovaní v Pythone, musíte pochopiť, čo sú generátory.

Funkcie generátora sa vyrábajú podľa definície rovnako ako bežné funkcie, ale obsahujú vyhlásenie „výnos“. Začína sa to kľúčovým slovom „výnos“, ktoré určuje objekt generátora, ktorý sa má vrátiť volajúcemu. Generátor je špeciálna funkcia v Pythone, ktorá vracia volajúci objekt volajúcemu namiesto dátovej hodnoty. Kľúčové slovo výnos má jedinečnú schopnosť zastaviť vykonávanie funkcie, uložiť stav a neskôr obnoviť.

Čo je to Python Return?

Príkaz na vrátenie, na rozdiel od príkazu na výnos, opúšťa funkciu a odovzdáva hodnotu volajúcemu. Funkcie vracajú späť hodnotu volajúcim a tie, ktoré majú skôr procedurálny charakter, sa výslovne vôbec nevracajú. Zatiaľ čo funkcia môže mať viac príkazov na vrátenie, pre každé dané vyvolanie funkcie môže byť volaná iba jedna z nich.

Príkaz return sa zvyčajne objaví na samom konci funkčného bloku, aby vrátil konečný výsledok vykonania všetkých príkazov obsiahnutých v tejto funkcii. Vo funkčnom bloku sa však môže objaviť aj skôr, aby sa zastavilo vykonávanie všetkých nasledujúcich príkazov v tomto bloku. Tým sa okamžite obnoví vykonávanie programu u volajúceho. Ak nie je zadaná žiadna hodnota, ekvivalentným typom návratového objektu v Pythone je „Žiadne“.

Rozdiel medzi výnosom Pythonu a výnosom

  1. Základy týkajúce sa výnosu a návratu Pythonu

    • Výťažok sa používa v generátoroch Pythonu ako náhrada za návrat funkcie na odoslanie hodnoty späť jej volajúcemu bez zničenia miestnych premenných. Generátor je špeciálna funkcia v Pythone, ktorá vracia volajúci objekt volajúcemu namiesto dátovej hodnoty.
    • Príkaz na vrátenie, na rozdiel od príkazu na výnos, opúšťa funkciu a odovzdáva hodnotu volajúcemu. Príkaz return sa zvyčajne objaví na samom konci funkčného bloku, aby vrátil konečný výsledok vykonania všetkých príkazov obsiahnutých v tejto funkcii. Všetky funkcie vrátia hodnotu a ak nie je zadaná žiadna hodnota, vráti hodnotu „Žiadne“..
  1. Generátory verzus funkcie v Pythonskom výnose a návrate

    • Výnos je výslovne používaný s generátormi Pythonu. Syntakticky je generátor funkciou s vyhlásením o výnose. Zatiaľ čo funkcia môže mať viac príkazov na vrátenie, pre každé dané vyvolanie funkcie môže byť volaná iba jedna z nich.
    • Na rozdiel od funkcie, ktorá sa vracia iba raz, generátory môžu zastaviť vykonávanie a poskytnúť prechodné výsledky. Každý generátor je definovaný ako funkcia, ale namiesto návratového kľúčového slova sa vo funkčnom bloku používa výnosové kľúčové slovo na označenie, že návratná hodnota je iba dočasná a celý generátor je možné obnoviť aj po získaní návratovej hodnoty..
  1. Vykonanie výnosu a návratu Pythonu

    • Návratový príkaz ukončí vykonanie funkcie a pošle späť hodnotu volajúcemu. Funkcie vracajú späť hodnotu volajúcim a tie, ktoré majú skôr procedurálny charakter, sa výslovne vôbec nevracajú. V zásade to znamená, že z funkcie vystúpime a zničí všetky miestne hodnoty v nej.
    • Výťažkový príkaz na druhej strane nahrádza návratovú hodnotu funkcie, aby pozastavil jej vykonávanie, a pošle hodnotu späť jej volajúcemu bez zničenia miestnych premenných. Na rozdiel od návratovej funkcie však výnos obnovuje vykonávanie funkcie od miesta, kde bola ukončená.

Výnos Python vs. výnos: porovnávacia tabuľka

Zhrnutie výnosu a návratu Pythonu

Syntakticky je výnos kľúčové slovo, ktoré sa dá použiť rovnako ako návratové kľúčové slovo, s výnimkou príkazu return, ktorý ukončí vykonávanie vašej funkcie a odošle späť volajúcemu hodnotu. Funkciou príkazu na návrat je prijať vstupy a niečo vrátiť volajúcemu. Na rozdiel od návratu sa výnosový príkaz výslovne používa na definovanie generátorov, pričom náhradou návratovej hodnoty funkcie sa pozastaví jej vykonávanie, pričom lokálne premenné zostanú nedotknuté, zatiaľ čo návratový príkaz zničí všetky miestne premenné v rámci.