Yield - це вбудоване ключове слово Python, яке повертає значення (и) із функції. Виконання функції не припиняється. Швидше, він повертає значення абоненту і підтримує стан виконання функції. Виконання функції відновлюється з останнього оператора yield. Прибутковість дозволяє нам отримати послідовність значень, а не одне значення. Він використовується всередині функціонального тіла. Функція, що містить оператор yield, відома як функція генератора.
Існує кілька переваг ключового слова yield. Наприклад, він контролює виділення пам'яті та зберігає стан локальної змінної. Однак це збільшує складність коду.
У цій статті на прикладах пояснюється використання ключового слова yield.
Синтаксис Yield
Синтаксис yield є простим і зрозумілим. Вихід ініціюється за допомогою ключового слова yield та синтаксису наступним чином:
величина врожайностіПриклади
Тепер давайте подивимося приклади, щоб зрозуміти, як застосовуються та працюють твердження про вихід. Традиційно ключове слово return завершує виконання програми та повертає значення в кінці, а yield повертає послідовність значень. Він не зберігає значення в пам'яті і повертає значення абоненту під час виконання. У наведеному нижче прикладі функція генератора визначена для визначення високосного року. Стрибок - це той рік, коли поділене на чотири повертає нуль як залишок. Ключове слово yield повертає значення високосного року абоненту. Отримавши значення високосного року, він призупинить виконання програми, поверне значення, а потім відновить виконання з того місця, де його було зупинено.
#declaring генератор для визначення високосного рокуdef leapfunc (my_list):
для я в my_list:
якщо (i% 4 == 0):
#використовуючи врожайність
врожайність i
#declaring список років
year_list = [2010,2011,2012,2016,2020,2024]
print ("Друк значень високосного року")
для x у leapfunc (список_року):
друк (x)
Вихідні дані
Результат показує серію високосних років.
Побачимо ще один приклад, коли функція генератора видає різні числа та рядки.
#declaring функцію генератораdef myfunc ():
вихід "Марка"
урожай "Джон"
вихід "Тейлор"
урожай "Іван"
врожайність 10
врожайність 20
врожайність 30
врожайність 40
врожайність 50
#calling та ітерація через функцію генератора
для i в myfunc ():
#printing values
друк (i)
Вихідні дані
Давайте реалізуємо функцію генератора для обчислення та друку кубового значення послідовності чисел. Ми генеруємо значення куба від 1 до 30.
#declaring функцію генератора для обчислення значення кубаdef calcube ():
val = 1
# нескінченний цикл while
Правда:
# обчислювальний куб
врожайність val * val * val
# збільшення номера на 1
val = val + 1
print ("Значення куба:")
# виклик функції генератора
для i в calcube ():
якщо i> 30:
перерва
друк (i)
Вихідні дані
На виході відображається значення куба менше 30.
Висновок
Yield - це вбудоване ключове слово Python, яке не припиняє виконання програми та не генерує ряд значень. У порівнянні з ключовим словом return, ключове слово yield видає кілька значень і повертається до абонента. У цій статті на прикладах пояснюється вихід Python.