Python - широко используемый в последнее время язык программирования общего назначения. Yield - это встроенное ключевое слово Python, которое используется для создания функций генератора. Его функция дает ряд результатов. Он приостанавливает выполнение программы, отправляет значение результата обратно вызывающей стороне и возобновляет выполнение с последнего yield. Кроме того, функция yield отправляет сгенерированную серию результатов в виде объекта-генератора. С другой стороны, return также является встроенным ключевым словом в Python, которое завершает функцию и отправляет значение обратно вызывающей стороне.
В этой статье описаны различия между доходностью и доходностью с примерами.
Различия между доходностью и доходностью
Начнем с того, что существует много заметных различий между доходностью и доходностью. Давайте сначала обсудим, что это.
Возвращение | Урожай |
---|---|
Оператор return возвращает вызывающему только одно значение. | Оператор yield может возвращать вызывающему объекту серию результатов в виде объекта-генератора. |
Возврат выходит из функции, а в случае цикла он закрывает цикл. Это последний оператор, который нужно разместить внутри функции. | Он не отменяет локальные переменные функции. Он приостанавливает выполнение и отправляет значение обратно вызывающей стороне и продолжает выполнение программы с последнего оператора yield. |
По логике, функция должна иметь только оператор возврата. | Внутри функции может быть несколько операторов yield. |
Оператор return может выполняться только один раз. | Оператор yield может выполняться несколько раз. |
Оператор return помещается внутри обычной функции Python. | Оператор yield преобразует обычную функцию в функцию генератора. |
Пример 1: доходность по сравнению с доходностью
Теперь давайте на примерах рассмотрим разницу между операторами return и yield. В приведенном ниже примере программы мы использовали несколько операторов возврата. Вы можете заметить, что выполнение программы завершится после первого оператора return, а остальная часть кода не будет выполнена.
# программа, показывающая работу оператора возврата
# определение числовой переменной
число1знак равно10
# определение числовой переменной
число2знак равнодвадцать
# создание функции для выполнения арифметических операций
def mathOP():
# вычисление итогового значения
возвращениечисло1+число2
# вычисление разницы
возвращениечисло1-число2
# вычисление значения умножения
возвращениечисло1*число2
# расчет стоимости деления
возвращениечисло1/число2
# вызов функции
Распечатать(mathOP())
Выход
В выводе видно, что функция возвращает только первое значение, и программа завершается.
Чтобы выполнить аналогичную задачу с несколькими операторами возврата, нам нужно создать четыре разные функции для каждого типа арифметической операции.
# программа, показывающая работу оператора возврата# определение числовой переменной
число1знак равно10
# определение числовой переменной
число2знак равнодвадцать
# создание функции для выполнения арифметических операций
def sumOP():
# вычисление итогового значения
возвращениечисло1+число2
def subtractOP():
# вычисление разницы
возвращениечисло1-число2
def умножениеOP():
# вычисление значения умножения
возвращениечисло1*число2
def DivisionOP():
# расчет стоимости деления
возвращениечисло1/число2
# вызов функции суммы
Распечатать('Суммарное значение:',sumOP())
# вызов функции вычитания
Распечатать('Значение разницы:',вычесть OP())
# вызов функции умножения
Распечатать('Значение умножения:',умножениеOP())
# вызов функции деления
Распечатать(«Стоимость деления:»,DivisionOP())
Выход
Мы можем выполнять эти несколько арифметических операций внутри одной функции генератора с несколькими операторами yield.
# программа, показывающая работу оператора yield# определение числовой переменной
число1знак равно10
# определение числовой переменной
число2знак равнодвадцать
# создание функции для выполнения арифметических операций
def mathOP():
# вычисление итогового значения
урожайчисло1+число2
# вычисление разницы
урожайчисло1-число2
# вычисление значения умножения
урожайчисло1*число2
# расчет стоимости деления
урожайчисло1/число2
# вызов функции
Распечатать('Печать значений:')
# использование цикла for для доступа к значениям из объекта генератора
дляя в mathOP():
Распечатать(я)
Выход
Пример 2: доходность и доходность
Давайте посмотрим на другой пример операторов return и yield. В данном примере у нас есть список чисел, который передается в функцию mod () в качестве аргумента. Мы выполняем операцию модуля для каждого числа в списке и проверяем, что это за числа при делении на 10, возвращая ноль в качестве значения остатка.
Сначала давайте реализуем этот пример в нашем скрипте Python с оператором return.
# определение списка номеровмой списокзнак равно[10,двадцать,25,30,35 год,40,пятьдесят]
# определение функции для выполнения операции модуля
def мод(мой список):
дляя в моем списке:
# выполнение операции по модулю
если(я%10==0):
возвращениея
Распечатать(против(мой список))
Выход
Оператор return возвращает вызывающему только первое число и завершает выполнение функции.
Теперь давайте реализуем тот же пример в нашем скрипте Python с оператором yield.
# определение списка номеровмой списокзнак равно[10,двадцать,25,30,35 год,40,пятьдесят]
# определение функции для выполнения операции модуля
def мод(мой список):
дляя в моем списке:
# выполнение операции по модулю
если(я%10==0):
# заявление о доходности
урожайя
дляя в моде(мой список):
Распечатать(я)
Выход
Заключение
В заключение, return и yield являются двумя встроенными ключевыми словами или операторами Python. Оператор return используется для возврата значения вызывающей стороне из функции и прекращает выполнение программы, в то время как оператор yield создает объект-генератор и может возвращать несколько значений вызывающей стороне, не прерывая выполнение программы. В этой статье перечислены все заметные различия между операторами return и yield с примерами.