ホームページ >バックエンド開発 >Python チュートリアル >Python では、Yield と Return の違いは何ですか?

Python では、Yield と Return の違いは何ですか?

PHPz
PHPz転載
2023-09-15 15:37:021075ブラウズ

Python では、Yield と Return の違いは何ですか?

Python では、generator の定義は yield ステートメントを使用して行われます。したがって、yield が実際に何に使用されるかについて詳しく説明する前に、generators の概要を理解することが重要です。 Python を初めて使用する場合は、これまでに Python ジェネレーターを使用したことがある可能性が高くなります。ジェネレーターは Python で重要な役割を果たします。 Python では、ジェネレーターを使用してイテレーターを生成できますが、プロセスの形式は少し異なります。

Python ジェネレーターは、動的に一時停止および再開でき、一連の結果を作成できる関数です。乱数を生成するために使用することもできます。 Python 2.2 では、ジェネレーターは最初にオプション機能として導入されました。 Python 2.3 では、これらは強制されます。ジェネレーターの機能は Python 2.5 で大幅に改善されましたが、すでに十分な機能があります。

下位互換性を維持するために、Python 2.2 にジェネレーターが追加されたことにより、 "yield" と呼ばれる新しいキーワード が導入されました。ジェネレーターを使用するには、_future_ モジュールからジェネレーターをインポートする必要があります。 Python 2.3 リリースでジェネレーターがデフォルトになったとき、変更が不要になったことを反映してこれが変更されました。

yield ステートメントを使用して関数の実行を一時的に停止すると、後で復元できるように関数の状態を保存しながら、呼び出し元に値が返されます。これは、戻り値を取得した後でもジェネレーター全体を再起動できることを意味します。関数の実行は return ステートメントで終了し、このステートメントは関数を呼び出した人に値を返します。欠落している場合、関数は何も返しません。

Python Yield とは何ですか?

Python ジェネレーターでは、ローカル変数を削除せずにジェネレーターを呼び出した人に値が返されるように、yield ステートメントが関数の return を置き換えます。 Python プログラミングでの yield ステートメント実行の機能をよりよく理解するには、まず ジェネレーターについて理解する必要があります。

ジェネレーター関数と通常の関数の違いは、ジェネレーター関数の定義に「yield」ステートメントがあることです。これは「yield」キーワードで始まり、この関数を呼び出した人に返されるジェネレータ オブジェクトを識別します。

Python では、「ジェネレーター」と呼ばれる特定のタイプの関数は、関数を呼び出した人にデータ値を返すのではなく、別のジェネレーター オブジェクトを返します。 yield キーワードを使用すると、関数の実行を一時的に停止し、状態を保存し、後で関数を再開できます。

###例###

以下の例を見てください -

リーリー ###出力### リーリー

Python リターンとは何ですか?

yield

ステートメントとは対照的に、

return

ステートメントは、呼び出し元の関数に値を返しながら関数を終了させます。本質的に手続き型の関数は、呼び出し元に明示的には何も返しませんが、代わりに呼び出し元の関数に送り返される値を返します。関数には複数の return ステートメントを含めることができますが、それらの各ステートメントの呼び出しごとに呼び出すことができるのは 1 つだけです。 ほとんどの場合、return ステートメントは関数ブロックの最後に配置されます。その目的は、関数に含まれるすべてのステートメントを実行した最終結果を返すことです。ただし、関数ブロックの前に

return

ステートメントを使用して、ブロック内の後続のすべてのステートメントの実行を停止することもできます。これは、関数の実行を防ぐために使用された場合に発生する可能性があります。これにより、呼び出し元はプログラムの実行を直ちに再開します。 「None」戻りオブジェクト タイプは、return オブジェクトに値が指定されていない場合の Python の戻りオブジェクト タイプと同等です。 ###例### 次の例は、Python での return の使用法を示しています -

リーリー ######出力############ リーリー

Python におけるイールドとリターンの違い

次の表は、Python における Yield と Return の主な違いを示しています -

###収率### ###戻る### ###ベース### ほとんどの場合、実行の終了は return キーワードを使用して通知され、結果を呼び出し元のステートメントに「返します」。 ###関数### ###使用### ###埋め込む### yield ステートメントの後に記述されたコードは、次の関数呼び出しで実行されます。 ###コンパイル### 一度に 1 回だけ実行されます。 ステートメントはジェネレーター オブジェクトを生成し、プログラムを終了せずに呼び出し元に複数の値を返すことができます。一方、return ステートメントは、内部から値を返すために使用されます。関数を実行すると、プログラムが終了します。 return ステートメントは、関数内から呼び出し元に値を返すために使用されます。
基本的な比較 ほとんどの場合、yield 関数を使用して、一般的な Python 関数をジェネレーターに変換する必要があります。
ローカル変数を失わずに関数の実行を一時停止するために、関数の return を置き換えます。 関数を終了し、呼び出し元に値を返します。
呼び出し元は、ジェネレーターが呼び出し元に中間結果を提供するときにこの関数を使用します。 関数が値を渡す準備をしている場合、これを使用する必要があります。
ただし、return ステートメントの後に書かれたコードは実行されません。 複数回実行する機能があります。
###結論は### yield

以上がPython では、Yield と Return の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。