Pythonのyield文の使い方は?

Pythonでイールドはジェネレーター関数を作成するためのキーワードです。ジェネレーター関数は実行途中に停止して現在の状態を保存し、次に呼び出されたときに再開できる特別な関数です。イールドキーワードを使うことで、ジェネレーター関数は値を逐次生成するイテレーターに変換できます。

yieldには主に2つの使い方があります。

  1. ジェネレータ関数の定義方法:関数本体内にyieldキーワードを入れると関数がジェネレータ関数になります。ジェネレータ関数は、呼び出されるたびにジェネレータオブジェクトを返します。ジェネレータオブジェクトの__next__()メソッドを呼ぶかnext()関数を使用すると、関数本体内のコードが段階的に実行されます。yield文に遭遇すると、関数は実行を一時停止し、yieldキーワードの後ろの値を返し、現在の状態を保存します。次にジェネレータオブジェクトを呼び出すと、関数は前回の一時停止したところから実行を再開し、次のyield文に遭遇するか関数終了するまで実行します。
  2. サンプル
  3. def generator():
    num = 0
    while True:
    num += 1
    yield num
  4. 生成器オブジェクトのイテレーションに用いるyieldキーワードは、ジェネレータオブジェクト内で値を返して呼び出し元に制御を渡した後、再度ジェネレータオブジェクトが呼び出されるのを待つ。これにより、全ての値を一度に生成するのではなく、必要に応じて値を生成できる。
  5. ご要望に応じて、喜んでお見積もりさせていただきます。
  6. ジェネレータの関数を定義する関数generator を定義します。for value in gen:
    print(value) # 0 1 2 3 4 と表示されます。

まとめ: yield キーワードはジェネレーター関数を定義するために使われ、ジェネレーターオブジェクト内で値を return して関数の処理を一時停止できます。ジェネレーターオブジェクトをイテレートすることで、ジェネレーター関数の中で yield ステートメントで return された値を1つずつ取得できます。

bannerAds