Изјава о приносу користи се за дефинисање генератора у Питхон-у. Дакле, пре него што пређемо на оно што тачно доноси, прво морамо да разумемо концепт генератора. Генератори имају значајну улогу у Питхону и ако сте дубоко у Питхон програмирању, велике су шансе да сте већ радили са Питхон генераторима. Генератори се користе за креирање итератора у Питхон-у, али са другачијим приступом.
Питхон Генератори су функције које производе низ резултата и могу се динамички паузирати и поново наставити. Генератори су први пут додавани као опциона функција у Питхон-у 2.2 и постали су стандардни у Питхон-у 2.3. Иако су били довољно снажни, функције генератора су значајно побољшане у Питхон 2.5.
Када су генератори додани у Питхон 2.2, увела је нову кључну реч „принос“ за компатибилност уназад, за коју смо морали да увозимо генераторе из модула _футуре_ да бисмо их користили. Ово је промењено у верзији Питхон 2.3 када генератори постану стандардни и више нису били потребни.
Изјава о приносу обуставља извршење функције и враћа вредност натраг позиваоцу, уз спремање стања и касније настављање, што значи да цео генератор и даље може бити настављен након што се добије повратна вредност. Изјава о повратку завршава извршење функције и враћа позиваоцу вриједност. Без тога, ваша функција не враћа ништа. Погледајмо добро када треба искористити принос и када треба искористити ретурн у Питхон-у да бисмо боље разумели разлику између то двоје.
Изјава о приносу користи се у Питхон генераторима како би се заменио повратак функције како би се вредност вратила његовом позиваоцу без уништавања локалних променљивих. Да бисте боље разумели какву улогу игра изјава о приносу у Питхон програмирању, морате да разумете шта су генератори.
Функције генератора производе се по дефиницији као и редовне функције, али садрже изјаву о приносу. Ово започиње кључном речју „приноса“ која одређује објект генератора који се враћа позиваоцу. Генератор је посебна функција у Питхон-у која враћа генераторски објект позиваоцу, а не вредност података. Природна кључна реч има јединствену способност заустављања извршавања функције, чувања стања и каснијег настављања.
Изјава о поврату, за разлику од изјаве о приносу, излази из функције и враћа позиваоцу вредност. Функције враћају вриједност својим позиваоцима, а оне које су више процедуралне природе, ништа изричито не враћају. Иако функција може имати више повратних изјава, само се један од њих може позвати за било који позив функције.
Обично се изјава на повратку појављује на самом крају функционалног блока да би се вратио коначни резултат извршења свих изјава садржаних у тој функцији. Међутим, може се појавити и раније у функцијском блоку да заустави извршавање свих наредних израза у том блоку. Ово одмах наставља извршавање програма код позиваоца. Када није наведена ниједна вриједност, еквивалентни тип повратног објекта у Питхону је „Ноне“.
Синтактички, ретурн је кључна реч која се може користити баш као и кључна реч поврат, осим што повратна изјава прекида извршење ваше функције и враћа вредности свом позиваоцу. Функционалност изјаве о поврату је да преузме уносе и нешто врати позиваоцу. За разлику од поврата, исказ износа се изричито користи за дефинисање генератора, замењујући повратну вредност функције за заустављање њеног извршења задржавајући непромијењене локалне варијабле, док изјава поврата уништава све локалне варијабле унутар.