Yieldは、関数から値を返すPythonの組み込みキーワードです。関数の実行は終了しません。むしろ、呼び出し元に値を返し、関数の実行状態を維持します。関数の実行は、最後のyieldステートメントから再開されます。歩留まりにより、1つの値ではなく一連の値を生成できます。関数本体の内部で使用されます。 yieldステートメントを含む関数は、ジェネレーター関数と呼ばれます。
キーワードを生成することにはいくつかの利点があります。たとえば、メモリ割り当てを制御し、ローカル変数の状態を保存します。ただし、コードが複雑になります。
この記事では、yieldキーワードの使用法を例とともに説明します。
歩留まりの構文
歩留まりの構文は単純で単純です。次のように、yieldキーワードと構文を使用してyieldを開始します。
収率価値
例
それでは、yieldステートメントの使用法と動作を理解するための例を見てみましょう。従来、returnキーワードはプログラムの実行を終了し、最後に値を返しますが、yieldは値のシーケンスを返します。値をメモリに保存せず、実行時に呼び出し元に値を返します。以下の例では、うるう年を決定するためにジェネレーター関数が定義されています。飛躍とは、4で割り切れる年が余りとしてゼロを返すことです。 yieldキーワードは、うるう年の値を呼び出し元に返します。うるう年の値を取得するため、プログラムの実行を一時停止し、値を返し、停止したところから実行を再開します。
#うるう年を決定するためのジェネレーターの宣言defleapfunc((私のリスト)。:
にとって私の私のリスト:
もしも((私%4==0)。:
#using利回り
収率私
#年リストの宣言
year_list=[2010年、2011、2012年、2016年、2020、2024年]
印刷((「うるう年の値の印刷」)。
にとってNSのleapfunc((year_list)。:
印刷((NS)。
出力
出力には、一連のうるう年が表示されます。
ジェネレーター関数がさまざまな数値と文字列を生成する別の例を見てみましょう。
#ジェネレーター関数の宣言defmyfunc(()。:
収率 'マーク'
収率 「ジョン」
収率 「テイラー」
収率 「イワン」
収率 10
収率 20
収率 30
収率 40
収率 50
#ジェネレーター関数を呼び出して反復する
にとって私のmyfunc(()。:
#printing values
印刷((私)。
出力
一連の数値の立方体の値を計算して出力するジェネレーター関数を実装しましょう。 1から30までのキューブ値を生成しています。
#キューブ値を計算するジェネレータ関数を宣言するdefカルキューブ(()。:
時間=1
#無限のwhileループ
その間 NS:
#計算キューブ
収率val * val * val
#値を1ずつ増やす
時間=val +1
印刷(('キューブの値は次のとおりです:')。
#ジェネレーター関数の呼び出し
にとって私のカルキューブ(()。:
もしも私>>30:
壊す
印刷((私)。
出力
出力には、30未満のキューブ値が表示されます。
結論
Yieldは、プログラムの実行を終了せず、一連の値を生成しないPython組み込みキーワードです。 returnキーワードと比較して、yieldキーワードは複数の値を生成し、呼び出し元に戻ります。この記事では、Pythonの利回りについて例を挙げて説明します。