\

Pythonでは、yieldyield fromはジェネレータを作成するための重要なキーワードです。

yieldとは

yieldはPythonのジェネレータ関数内で使用され、関数の実行を一時停止し、値を生成します。例えば、次のようなコードがあります。

def foo():
    for i in range(10):
        yield i

この関数fooは0から9までの値を順に生成するジェネレータです。

yieldとreturnの併用

yieldreturnを同時に使用することは可能ですが、returnはジェネレータ内でStopIterationとして扱われます。したがって、yieldreturnの併用は基本的には難しく、yieldreturnのどちらかに絞るのが良いとされています。

yield fromとは

yield fromは、あるジェネレータが別のジェネレータを呼び出す必要がある場合に使用されます。yield fromを使用すると、returnに設定した値を取得することができます。

def buzz():
    i = 0
    for j in range(10):
        i += j
        yield j
    return i

def getter():
    x = yield from buzz()
    yield x

上記のコードでは、getter関数はbuzz関数から生成された値を順に生成し、最後にbuzz関数のreturn値を生成します。

まとめ

  • yieldを使うとジェネレータを生成できます。
  • yieldreturnの併用は基本的には難しいです。
  • yield fromを使うと、returnの値までを取得できます。
  • yield fromは関数内でしか使えません。
  • 結局はyieldreturnに絞ったほうが良いです。

以上、Pythonのyieldyield fromについての基本的な説明でした。これらのキーワードを理解し、適切に使用することで、より効率的で読みやすいコードを書くことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です