Постановка виходу використовується для визначення генераторів в Python. Отже, перш ніж ми розбираємося в тому, що саме робить урожай, ми повинні спершу розібратися в концепції генераторів. Генератори відіграють важливу роль у Python, і якщо ви заглиблюєтесь у програмування Python, швидше за все, ви вже працювали з генераторами Python. Генератори використовуються для створення ітераторів в Python, але з іншим підходом.
Генератори Python - це функції, які створюють послідовність результатів, і їх можна динамічно призупиняти та відновлювати. Генератори вперше були додані як додаткова функція в Python 2.2 і стали стандартними в Python 2.3. Хоча вони були досить потужними, функції генераторів були значно покращені в Python 2.5.
Коли генератори були додані ще в Python 2.2, він ввів нове ключове слово “урожай” для зворотної сумісності, для чого нам потрібно було імпортувати генератори з модуля _future_, щоб їх використовувати. Це було змінено у версії Python 2.3, коли генератори стали стандартними, і це вже не було необхідності.
Виписка про призупинення призупиняє виконання функції і повертає значення назад абоненту, зберігаючи стан і пізніше відновлення, тобто весь генератор ще може бути відновлений після отримання повернутого значення. Повернення оператора завершує виконання функції та відправляє значення назад абоненту. Без цього ваша функція нічого не повертає. Давайте добре розберемося, коли використовувати дохід і коли використовувати return у Python, щоб краще зрозуміти різницю між ними.
Постановка виходу використовується в генераторах Python для заміни повернення функції для відправлення значення назад своєму виклику без руйнування локальних змінних. Щоб краще зрозуміти, яку роль відіграє заява про врожайність у програмуванні Python, ви повинні зрозуміти, що таке генератори.
Функції генератора виробляються за визначенням так само, як і звичайні функції, але містять вираз "вихід". Це починається з ключового слова "урожай", який вказує об'єкт генератора, який потрібно повернути абоненту. Генератор - це спеціальна функція в Python, яка повертає об'єкт генератора абоненту, а не значення даних. Ключове слово урожай має унікальну можливість зупинити виконання функції, зберегти стан та пізніше відновити.
Виписка повернення, на відміну від оператора дохідності, виходить із функції, передаючи значення своєму виклику. Функції повертають значення своїм абонентам, а ті, які мають більш процедурний характер, явно нічого не повертають. Незважаючи на те, що функція може мати декілька операторів повернення, лише один з них може бути викликаний для будь-якого виклику функції.
Зазвичай оператор повернення з'являється в самому кінці функціонального блоку для повернення кінцевого результату виконання всіх операторів, що містяться в цій функції. Однак може також з’явитися раніше у функціональному блоці, щоб зупинити виконання всіх наступних операторів у цьому блоці. Це негайно поновлює виконання програми у абонента. Якщо значення не вказане, еквівалентний тип об'єкта повернення в Python є "None".
Синтаксично, дохід - це ключове слово, яке можна використовувати так само, як і ключове слово return, за винятком оператора return, який завершує виконання вашої функції і повертає значення своєму абоненту. Функціонал оператора повернення полягає в тому, щоб приймати входи і щось повертати абоненту. На відміну від повернення, довідка про вихід явно використовується для визначення генераторів, замінюючи значення повернення функції для призупинення її виконання, зберігаючи локальні змінні недоторканими, тоді як оператор return знищує всі локальні змінні в межах.