Slovo return pochází z angličtiny [rit@:n, čili delší temné e]. Znamená jednoduše "návrat". V programování se jednoznačně používá pro příkaz, který ukončuje činnost funkce nebo metody a vrací volajícímu nějakou hodnotu.
Pokud v pythonovské funkci použiji return, činnost funkce se okamžitě ukončí a volajícímu se vrátí hodnota.
Hodnota může být prázdná (napíšu return bez parametrů), nebo je konkrétní, jedna. Vrácená hodnota může být jednoduchého typu (například jedno číslo) nebo může být trochu složitější.
Příkaz return může vracet jedinou věc. Tou jedinou věcí je "nic" (čili None), nebo například jedno číslo, jeden řetězec, jedna dvojice, jedna trojice, jeden slovník, jeden uživatelem vytvořený objekt a podobně.
Pokud to vrácené něco použiji na pravé straně přiřazení (tj. za rovnítkem), spojí se to se jménem na levé straně přiřazení:
def mojeFunkce(): cislo=10 return pocet mnozství=mojeFunkce()
Pokud na levé straně přiřazení použiji více jmen, spojí se dohodnutým způsobem s více částmi toho jednoho, co se vyskytuje na pravé straně přiřazení:
def mojeFunkce: cislo=10 jmeno="Jirka" return cislo, jmeno mnozstvi, zadatel=mojeFunkce()
Když například vrátím dvojici čísel a na levé straně uvedu jedno jméno, pak se přes toto jedno jméno dostanu na celou jednu dvojici. Pokud ale na levé straně uvedu dvě jména, spojí se první jméno s prvním členem dvojice a druhé jméno s druhým členem dvojice. Pokud bych na levé straně uvedl tři jména, pak se třetí jméno nemá s čím spojit a stroj (podle dohody) zahlásí chybu:
def mojeFunkce: cislo=10 jmeno="Jirka" return cislo, jmeno mnozstvi, zadatel, bydliste=mojeFunkce() # zahlasi chybu
Poslední i předposlední ukázka úzce souvisí s ParalelniPrirazeni a jedná se o praktické využití jedné pythonovské fíčurky:
a,b,c = 1,2,3 nebo taky a,b,c=[1,2,3] a,b,c=(1,2,3)
return a,b je ve skutečnosti return (a,b), takže se vrací tuple, která se samorozbaluje do přislušných proměnných.
Příkaz return může se může ve funkci objevit několikrát - uprostřed nebo na konci. Platí pravidlo, že první return bere vše, tedy že na ostatní returny se již nedostane:
def mojeFunkce(): cislo=10 if cislo < 10: return "Cislo je mensi nez 10" else: return "Cislo je vetsi nebo rovno 10" vysledek=mojeFunkce()