\

Pythonでは、yieldyield fromはジェネレータを作成するための重要なキーワードです。これらのキーワードは、関数内で使用され、関数をジェネレータに変換します。

yieldとは

yieldはPythonのジェネレータ内で使用されるキーワードで、関数がジェネレータとして動作するようにします。yieldを使用すると、関数は値を一度に1つずつ生成し、その状態を保持します。これにより、次にジェネレータが呼び出されるときに、前回停止した場所から処理を再開することができます。

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

for k in foo():
    print(k)

上記のコードでは、foo関数は0から9までの値を一度に1つずつ生成します。

yield fromとは

yield fromはPython 3.3で導入され、ジェネレータの中で別のジェネレータを簡単に呼び出すことができます。yield fromを使用すると、サブジェネレータのすべての値が親ジェネレータに直接送信されます。

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

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

上記のコードでは、buzz関数は0から9までの値を一度に1つずつ生成し、その合計を返します。getter関数はyield fromを使用してbuzz関数から値を取得し、その結果を生成します。

まとめ

yieldyield fromはPythonのジェネレータを作成するための重要なキーワードです。これらのキーワードを理解し、適切に使用することで、効率的なコードを書くことができます。

投稿者 admin

コメントを残す

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