Rozdíl mezi výnosem Pythonu a výnosem Pythonu

Příkaz výnos se používá k definování generátorů v Pythonu. Takže než se dostaneme do toho, co přesně přináší výnos, musíme nejprve pochopit pojem generátorů. Generátory mají v Pythonu významnou roli a pokud jste v hlubokém programování v Pythonu, je pravděpodobné, že jste již spolupracovali s generátory Python. Generátory se používají k vytváření iterátorů v Pythonu, ale s odlišným přístupem.

Generátory Pythonu jsou funkce, které vytvářejí sled výsledků a lze je dynamicky pozastavit a obnovit. Generátory byly nejprve přidány jako volitelná funkce v Pythonu 2.2 a byly standardem v Pythonu 2.3. Přestože byly dostatečně výkonné, funkce generátorů byly v Pythonu 2.5 výrazně vylepšeny.

Když byly generátory přidány zpět do Pythonu 2.2, zavedlo nové klíčové slovo „výnos“ pro zpětnou kompatibilitu, pro které jsme potřebovali importovat generátory z modulu _future_, abychom je mohli použít. To se změnilo v Pythonu verze 2.3, když se generátory staly standardem a už to nebylo nutné.

Příkaz výnosu pozastaví vykonávání funkce a odešle hodnotu zpět volajícímu, zatímco stav úspory a pozdější obnovení znamená, že celý generátor může být znovu obnoven po získání návratové hodnoty. Návratový příkaz ukončí provedení funkce a odešle volajícímu hodnotu zpět. Bez něj vaše funkce nevrací nic. Pojďme se dobře podívat, kdy použít výnos a kdy použít návrat v Pythonu, abychom lépe porozuměli rozdílu mezi těmito dvěma.

Co je Python Yield?

Příkaz výnos se používá v generátorech Pythonu jako náhrada za návrat funkce k odeslání hodnoty zpět volajícímu, aniž by došlo ke zničení místních proměnných. Abyste lépe porozuměli, jakou roli hraje prohlášení o výnosu v programování v Pythonu, musíte pochopit, jaké jsou generátory.

Funkce generátoru jsou definovány jako běžné funkce, ale obsahují příkaz „výnos“. Toto začíná klíčovým slovem „výnos“, které určuje objekt generátoru, který má být vrácen volajícímu. Generátor je speciální funkce v Pythonu, která vrací objekt generátoru volajícímu namísto datové hodnoty. Klíčové slovo výnos má jedinečnou schopnost zastavit provádění funkce, uložit stav a později obnovit.

Co je to Python Return?

Návratový příkaz, na rozdíl od výnosového příkazu, opouští funkci a předává hodnotu volajícímu. Funkce vrátí hodnotu zpět jejich volajícím a ty, které jsou procedurálnějšího charakteru, nic výslovně nevracejí. Zatímco funkce může mít více návratových příkazů, pouze jeden z nich může být vyvolán pro jakékoli dané vyvolání funkce.

Příkaz return se obvykle objeví na samém konci funkčního bloku a vrací konečný výsledek provádění všech příkazů obsažených v této funkci. Může se však také objevit dříve ve funkčním bloku, aby zastavil provádění všech následných příkazů v tomto bloku. Tím se okamžitě obnoví provádění programu u volajícího. Pokud není zadána žádná hodnota, ekvivalentním typem návratového objektu v Pythonu je „Žádný“.

Rozdíl mezi výnosem Pythonu a návratem

  1. Základy týkající se výnosu a návratu Pythonu

    • Příkaz výnos se používá v generátorech Pythonu jako náhrada za návrat funkce k odeslání hodnoty zpět volajícímu, aniž by došlo ke zničení místních proměnných. Generátor je speciální funkce v Pythonu, která vrací objekt generátoru volajícímu namísto datové hodnoty.
    • Návratový příkaz, na rozdíl od výnosového příkazu, opouští funkci a předává hodnotu volajícímu. Příkaz return se obvykle objeví na samém konci funkčního bloku a vrací konečný výsledek provádění všech příkazů obsažených v této funkci. Všechny funkce vrátí hodnotu a pokud není zadána žádná hodnota, vrátí hodnotu „Žádná“..
  1. Generátory vs. funkce v Pythonově výnosu a návratu

    • Prohlášení o výtěžnosti se explicitně používá u generátorů Python. Syntakticky je generátor funkce s výrokem o výtěžnosti. Zatímco funkce může mít více návratových příkazů, pouze jeden z nich může být vyvolán pro jakékoli dané vyvolání funkce.
    • Na rozdíl od funkce, která se vrací pouze jednou, generátory mohou zastavit provádění a poskytnout průběžné výsledky. Každý generátor je definován jako funkce, ale namísto návratového klíčového slova je klíčové slovo výnos použito uvnitř funkčního bloku k označení, že návratová hodnota je pouze dočasná a celý generátor lze obnovit i poté, co je získána návratová hodnota.
  1. Provedení výtěžku a návratu Pythonu

    • Návratový příkaz ukončí provedení funkce a odešle zpět hodnotu volajícímu. Funkce vrátí hodnotu zpět jejich volajícím a ty, které jsou procedurálnějšího charakteru, nic výslovně nevracejí. V zásadě se jedná o ukončení funkce a zničení všech místních hodnot uvnitř.
    • Příkaz výnosu na druhé straně nahrazuje návratovou hodnotu funkce, která pozastavuje její provádění, a odešle hodnotu zpět volajícímu, aniž by došlo ke zničení místních proměnných. Na rozdíl od funkce návratu však výnos obnovuje provádění funkce od místa, kde byla ukončena.

Výnos Python vs. výnos: srovnávací tabulka

Shrnutí výnosu a návratu Pythonu

Syntakticky je výnos klíčové slovo, které lze použít stejně jako návratové klíčové slovo, s výjimkou příkazu return, který ukončí provádění vaší funkce a odešle zpět volajícímu hodnotu. Funkcí příkazu return je převzít vstupy a něco vrátit volajícímu. Na rozdíl od návratu se příkaz výnosu explicitně používá k definování generátorů, nahrazením návratové hodnoty funkce se pozastavuje její provádění, přičemž lokální proměnné zůstávají nedotčeny, zatímco příkaz návrat ničí všechny místní proměnné uvnitř.