ホームページ > バックエンド開発 > Python チュートリアル > Python の「yield」キーワードは何をするのか、またジェネレータはどのように使用されるのか?

Python の「yield」キーワードは何をするのか、またジェネレータはどのように使用されるのか?

Mary-Kate Olsen
リリース: 2024-12-22 17:11:11
オリジナル
594 人が閲覧しました

What Does Python's `yield` Keyword Do and How Are Generators Used?

Python の "yield" は具体的に何をするのですか?

"yield" は、ジェネレーター を作成できる Python の固有のキーワードです。これは特殊なタイプの反復可能オブジェクトです。 Iterable は、リストや文字列など、反復処理できる値のシーケンスを表します。ただし、ジェネレータはすべての値をメモリに保存しないという点でこれらとは異なります。代わりに、一度に 1 つずつ、その場で値を生成します。

ジェネレーターを理解するには、反復可能から始めると役立ちます。イテラブルは __iter__() メソッドを実装するオブジェクトであり、 iter() 関数を介してイテレータ オブジェクトを取得できるようにします。イテレーターは __next__() メソッドを実装します。このメソッドはシーケンス内の次の項目を返し、項目がなくなると StopIteration 例外を発生させます。

ジェネレーターと "yield" の役割

ジェネレーター「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:

  • メモリ効率: iterables とは異なり、ジェネレーターはすべての値を同時にメモリに保存しません。これにより、大きなシーケンスやサイズが事前に不明なシーケンスの生成に最適です。
  • 遅延評価: ジェネレーターは必要なときにのみ値を生成し、計算時間とリソースを節約します。
  • 柔軟性: ジェネレータは再初期化することなく何度でも再利用でき、パイプラインやその他の複雑な操作を作成するのに便利です。

結論

「yield」は、値を生成する独自のタイプの反復可能オブジェクトであるジェネレーターの作成を可能にする Python の強力なキーワードです。要求。ジェネレーターには、メモリ効率、遅延評価、柔軟性などの利点があり、さまざまなプログラミング シナリオで貴重なツールとなります。

以上がPython の「yield」キーワードは何をするのか、またジェネレータはどのように使用されるのか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート