Python Yield

Python Yield



Yield - это встроенное ключевое слово Python, которое возвращает значение (значения) из функции. Выполнение функции не прекращается. Скорее, он возвращает значение вызывающей стороне и поддерживает состояние выполнения функции. Выполнение функции возобновляется с последнего оператора yield. Доходность позволяет нам создавать последовательность значений, а не одно значение. Он используется внутри тела функции. Функция, содержащая оператор yield, известна как функция генератора.







У yield keyword есть несколько преимуществ. Например, он контролирует выделение памяти и сохраняет состояние локальной переменной. Однако это увеличивает сложность кода.



В этой статье на примерах объясняется использование ключевого слова yield.



Синтаксис доходности

Синтаксис yield простой и понятный. Выход начинается с ключевого слова yield и синтаксиса следующим образом:





урожайценить

Примеры

Теперь давайте рассмотрим примеры, чтобы понять использование и работу операторов yield. Традиционно ключевое слово return завершает выполнение программы и возвращает значение в конце, а yield возвращает последовательность значений. Он не сохраняет значение в памяти и возвращает значение вызывающей стороне во время выполнения. В приведенном ниже примере функция генератора определена для определения високосного года. Високосный год - это год, когда делится на четыре, и в качестве остатка возвращается ноль. Ключевое слово yield возвращает вызывающему объекту значение високосного года. Поскольку он получит значение високосного года, он приостановит выполнение программы, вернет значение, а затем возобновит выполнение с того места, где оно было остановлено.

# объявление генератора для определения високосного года
defскачок(мой список):
дляявмой список:
если(я%4==0):
# using yield
урожайя
# объявление списка лет
год_листзнак равно[2010 г.,2011 г.,2012 г.,2016 г.,2020 г.,2024 г.]
Распечатать('Печать значений високосного года')
дляИксвскачок(год_лист):
Распечатать(Икс)

Выход



Вывод показывает серию високосных лет.

Давайте посмотрим на другой пример, в котором функция генератора выдает различные числа и строки.

# объявление функции генератора
defmyfunc():
урожай 'Отметка'
урожай 'Джон'
урожай 'Тейлор'
урожай 'Иван'
урожай 10
урожай двадцать
урожай 30
урожай 40
урожай пятьдесят
# вызов и повторение функции генератора
дляявmyfunc():
# печать значений
Распечатать(я)

Выход

Давайте реализуем функцию генератора для вычисления и печати значения куба последовательности чисел. Мы генерируем значения куба от 1 до 30.

# объявление функции генератора для вычисления значения куба
defкалькуба():
часызнак равно1
# бесконечный цикл while
в то время как Правда:
# калькумационный куб
урожайval * val * val
# увеличение значения на 1
часызнак равноval +1
Распечатать('Значения куба:')
# вызов функции генератора
дляявкалькуба():
еслия>30:
перерыв
Распечатать(я)

Выход

Выходные данные показывают значение куба меньше 30.

Заключение

Yield - это встроенное ключевое слово Python, которое не прекращает выполнение программы и не генерирует серию значений. По сравнению с ключевым словом return ключевое слово yield производит несколько значений и возвращает вызывающему объекту. Эта статья объясняет Python Yield на примерах.