A hozamnyilatkozat a Python-ban lévő generátorok meghatározására szolgál. Tehát mielőtt megvizsgálnánk, hogy pontosan mit jelent a hozam, először meg kell értenünk a generátorok fogalmát. A generátorok jelentős szerepet játszanak a Pythonban, és ha mélyen beleszel a Python programozásába, akkor valószínű, hogy már dolgozott a Python generátorokkal. A generátorokat iterátorok létrehozására használják Pythonban, de más megközelítéssel.
A Python-generátorok olyan funkciók, amelyek eredménysorozatot hoznak létre, és szüneteltethetők, és dinamikusan folytathatók. A generátorokat először opcionális funkcióként adták hozzá a Python 2.2-hez, és a Python 2.3-ban szabványsá tették. Annak ellenére, hogy elég erősek voltak, a generátorok funkcióit jelentősen javították a Python 2.5-ben.
Amikor a generátorokat visszatértek a Python 2.2-be, új visszajelzés-kulcsszót vezettünk be a visszamenőleges kompatibilitásra, amelynek használatához a _future_ modulból kellett importálnunk a generátorokat. Ezt megváltoztatta a Python 2.3-as verziója, amikor a generátorok szabványossá váltak, és ez már nem volt szükséges.
A hozamnyilatkozat felfüggeszti a funkció végrehajtását, és egy értéket küld vissza a hívónak, miközben az állapotot megőrzi és később folytatja, azaz az egész generátor továbbra is folytatható, miután a visszatérési értéket megkapta. A visszatérési nyilatkozat befejezi a funkció végrehajtását, és egy értéket küld vissza a hívónak. Enélkül a funkciód semmit sem eredményez. Vessen egy pillantást arra, mikor kell felhasználni a hozamot és mikor kell használni a visszatérítést Pythonban, hogy jobban megértsük a kettő közötti különbséget.
A hozamnyilatkozatot a Python generátorokban használják annak a funkciónak a visszatérésére, amely egy értéket küld vissza a hívójának anélkül, hogy a helyi változók megsemmisülnének. Annak jobb megértése érdekében, hogy a hozamnyilatkozat milyen szerepet játszik a Python programozásában, meg kell értenie, hogy mi a generátor.
A generátor funkciókat definíció szerint állítják elő, ugyanúgy, mint a szokásos függvények, de tartalmaznak egy „hozam” nyilatkozatot. Ez a „hozam” kulcsszóval kezdődik, amely meghatározza a hívónak visszaadott generátor objektumot. A generátor a Python speciális funkciója, amely egy generátor objektumot ad vissza a hívónak, és nem egy adat értéket. A hozam kulcsszó egyedülálló módon képes megállítani a funkció végrehajtását, megtakarítási állapotot, majd később folytatni.
A visszatérési nyilatkozat, a hozamnyilatkozattal ellentétben, kilép egy funkcióból, és egy értéket ad vissza a hívójának. A funkciók visszaadnak egy értéket hívóiknak, és azok, amelyek jellegüket inkább eljárásbeli jellegûek, egyáltalán nem adnak vissza. Míg egy függvénynek több visszatérési nyilatkozata is lehet, ezek közül csak egyet lehet meghívni a függvény adott hívására.
Általában egy visszatérési nyilatkozat jelenik meg a funkcióblokk végén, hogy visszatérjen a függvényben szereplő összes utasítás végrehajtásának végső eredményéhez. Előfordulhat azonban, hogy a funkcióblokkban korábban is megállítja az abban a blokkban lévő összes következő utasítás végrehajtását. Ez azonnal folytatja a program végrehajtását a hívó félnél. Ha nincs megadva érték, a Pythonban az ekvivalens visszatérési objektum típusa „Nincs”.
Szintaktikailag a hozam olyan kulcsszó, amely ugyanúgy használható, mint a visszatérő kulcsszó, azzal a különbséggel, hogy a visszatérési nyilatkozat leállítja a funkció végrehajtását, és egy értéket küld vissza a hívójának. A visszatérési nyilatkozat funkciója az, hogy bemeneteket gyűjt és valamit visszaad a hívónak. A visszatéréssel ellentétben a hozamnyilatkozatot kifejezetten a generátorok meghatározására használják, helyettesítve egy függvény visszatérési értékét annak végrehajtásának felfüggesztésére, a helyi változókat érintetlenül hagyva, míg a visszatérési nyilatkozat elpusztítja az összes helyi változót..