Разница между доходностью Python и возвратом Python

Оператор yield используется для определения генераторов в Python. Поэтому, прежде чем мы начнем понимать, что именно дает доходность, мы должны сначала понять концепцию генераторов. Генераторы играют важную роль в Python, и если вы глубоко в программировании на Python, скорее всего, вы уже работали с генераторами Python. Генераторы используются для создания итераторов в Python, но с другим подходом.

Генераторы Python - это функции, которые производят последовательность результатов и могут быть приостановлены и возобновлены динамически. Генераторы были впервые добавлены в качестве дополнительной функции в Python 2.2 и сделаны стандартными в Python 2.3. Хотя они были достаточно мощными, функции генераторов были значительно улучшены в Python 2.5.

Когда генераторы были добавлены обратно в Python 2.2, было введено новое ключевое слово «yield» для обратной совместимости, для которого нам нужно было импортировать генераторы из модуля _future_, чтобы использовать их. Это было изменено в Python версии 2.3, когда генераторы стали стандартными, и в этом больше не было необходимости.

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

Что такое Python Yield?

Оператор yield используется в генераторах Python для замены возврата функции, чтобы отправить значение обратно вызывающей стороне без разрушения локальных переменных. Чтобы лучше понять, какую роль играет оператор yield в программировании на Python, вы должны понять, что такое генераторы.

Функции генератора создаются по определению, как и обычные функции, но содержат оператор «yield». Это начинается с ключевого слова «yield», которое указывает объект генератора, который будет возвращен вызывающей стороне. Генератор - это специальная функция в Python, которая возвращает объект-генератор вызывающей стороне, а не значение данных. Ключевое слово yield обладает уникальной возможностью остановки выполнения функции, сохранения состояния и последующего возобновления..

Что такое Python Return??

Оператор return, в отличие от оператора yield, выходит из функции, возвращая значение вызывающей стороне. Функции возвращают значение своим вызывающим, а те, которые имеют более процедурный характер, явно не возвращают ничего вообще. Хотя функция может иметь несколько операторов возврата, только один из них может быть вызван для любого данного вызова функции.

Как правило, оператор возврата появляется в самом конце функционального блока, чтобы вернуть окончательный результат выполнения всех операторов, содержащихся в этой функции. Тем не менее, он также может появляться раньше в функциональном блоке, чтобы остановить выполнение всех последующих операторов в этом блоке. Это немедленно возобновляет выполнение программы у вызывающей стороны. Если значение не указано, эквивалентный тип возвращаемого объекта в Python - «Нет»..

Разница между Python Yield и Return

  1. Основы, связанные с доходностью и возвратом Python

    • Оператор yield используется в генераторах Python для замены возврата функции, чтобы отправить значение обратно вызывающей стороне без разрушения локальных переменных. Генератор - это специальная функция в Python, которая возвращает объект-генератор вызывающей стороне, а не значение данных.
    • Оператор return, в отличие от оператора yield, выходит из функции, возвращая значение вызывающей стороне. Как правило, оператор возврата появляется в самом конце функционального блока, чтобы вернуть окончательный результат выполнения всех операторов, содержащихся в этой функции. Все функции возвращают значение, и если значение не указано, оно возвращает «Нет».
  1. Генераторы и функции в Python Yield и Return

    • Оператор yield явно используется с генераторами Python. Синтаксически генератор - это функция с оператором yield. Хотя функция может иметь несколько операторов возврата, только один из них может быть вызван для любого данного вызова функции.
    • В отличие от функции, которая возвращает только один раз, генераторы могут остановить выполнение и дать промежуточные результаты. Каждый генератор определяется как функция, но вместо ключевого слова return ключевое слово yield используется внутри функционального блока, чтобы указать, что возвращаемое значение является только временным, и весь генератор может быть возобновлен даже после получения возвращаемого значения..
  1. Выполнение Python Yield и Return

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

Выход Python vs. Return: Сравнительная таблица

Сводная информация о доходности и доходности Python

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