\

Pythonのyield fromは、反復可能オブジェクト(イテラブル)またはイテレータを使って関数内で定義します。この記事では、その基本的な使い方と応用例について解説します。

基本的な使い方

Python公式ドキュメントによれば、yield from iterableは本質的にはfor item in iterable: yield itemへの単なる速記法です。つまり、yield fromを使うと、イテラブルなオブジェクトの各要素を順にyieldすることができます。

def generator():
    yield from [1, 2, 3, 4, 5]

for num in generator():
    print(num)

上記のコードは、1から5までの数字を順に出力します。

応用例:ジェネレータのチェーン

yield fromは、ジェネレータ関数(サブジェネレータ)を呼び出す際にも使えます。これにより、ジェネレータのチェーンを作ることができます。

def sub_generator():
    for i in range(5):
        yield i

def main_generator():
    yield from sub_generator()

for num in main_generator():
    print(num)

このコードも、1から5までの数字を順に出力します。しかし、この場合、数字の生成はsub_generatorが担当しています。main_generatorは、その結果をそのままyieldしています。

注意点

yield fromは関数内でしか記述できません。また、yield fromの後にはイテラブルなオブジェクトを指定する必要があります。

以上、Pythonのyield fromについての基本的な使い方と応用例を解説しました。この機能を理解することで、Pythonのジェネレータをより深く理解し、効率的にコードを書くことができます。

投稿者 admin

コメントを残す

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