"yield" は、ジェネレーター を作成できる Python の固有のキーワードです。これは特殊なタイプの反復可能オブジェクトです。 Iterable は、リストや文字列など、反復処理できる値のシーケンスを表します。ただし、ジェネレータはすべての値をメモリに保存しないという点でこれらとは異なります。代わりに、一度に 1 つずつ、その場で値を生成します。
ジェネレーターを理解するには、反復可能から始めると役立ちます。イテラブルは __iter__() メソッドを実装するオブジェクトであり、 iter() 関数を介してイテレータ オブジェクトを取得できるようにします。イテレーターは __next__() メソッドを実装します。このメソッドはシーケンス内の次の項目を返し、項目がなくなると StopIteration 例外を発生させます。
ジェネレーター「yield」キーワードを使用して作成される反復可能オブジェクトの一種です。ジェネレーターは、各「yield」ステートメントで実行を一時停止し、一度に 1 つの値を取得できるという点で独特です。ジェネレーターを使用すると、一時停止した時点から実行が再開され、次の値が生成されます。このプロセスは、ジェネレーターがすべての値を使い果たすまで続き、その時点で StopIteration 例外が発生します。
ジェネレーターを使用するには、次のいずれかを含むジェネレーター関数を作成します。さらに「yield」ステートメント。この関数はジェネレータ オブジェクトを返します。これは、「for」ループを使用して反復できます。
例を次に示します。
def generate_numbers(): for i in range(5): yield i
この例では、generate_numbers() はジェネレータ関数です。 0 から 4 までの数値を反復処理し、それぞれの値を生成します。このジェネレーターを使用するには、「for」ループを使用して反復処理します。
for number in generate_numbers(): print(number)
このコードは、0 から 4 までの数値を出力します。
発電機には従来の発電機に比べていくつかの利点がありますiterables:
「yield」は、値を生成する独自のタイプの反復可能オブジェクトであるジェネレーターの作成を可能にする Python の強力なキーワードです。要求。ジェネレーターには、メモリ効率、遅延評価、柔軟性などの利点があり、さまざまなプログラミング シナリオで貴重なツールとなります。
以上がPython の「yield」キーワードは何をするのか、またジェネレータはどのように使用されるのか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。