この記事では、yield fromの使い方について解説します。
この記事でわかること
- yield fromの使い方
- yield fromでできること
通常のジェネレータの使い方は以下の記事を参考にしてください。
Linkジェネレータの定義と使い方を解説
スポンサーリンク
yield fromの定義
yield fromは、反復可能オブジェクト、またはイテレータを使って関数内で定義します。
def func(): yield from 反復可能オブジェクト、またはイテレータ
複数のyield fromを定義することもできます。
def func(): yield from 反復可能オブジェクト、またはイテレータ yield from 反復可能オブジェクト、またはイテレータ yield from 反復可能オブジェクト、またはイテレータ
使ってみる
複数の反復可能オブジェクト、またはイテレータを1つのジェネレータとして扱うことができます。
def gen(): yield from ['a', 'b', 'c'] yield from (1, 2, 3) # 出力 for item in gen(): print(item)
実行結果
a b c 1 2 3
もちろん、ジェネレータをまとめることもできます。
def gen1(): yield 'a' yield 'b' yield 'c' def gen2(): yield from [1, 2, 3] def gen(): yield from gen1() yield from gen2() for item in gen(): print(item)
実行結果
a b c 1 2 3
何ができるのか?
yield fromは、指定された反復可能オブジェクト、またはイテレータをジェネレータオブジェクトとして返します。さらにyield fromは複数定義することができます。
複数定義することで「いくつかの反復可能オブジェクト、またはイテレータを1つのジェネレータオブジェクトとしてまとめて返すことができる」ということになります。
つまりyield fromは、大きなジェネレータをいくつかに分割した際にあとで1つにまとめるための機能と言えます。
まとめ
この記事では、yield fromの使い方について解説しました。
以下の2点を押さえておきましょう。
- Python 3.3 で追加された機能
- いくつかのイテレータなどをまとめるために使う
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ
| ジェネレータの定義と使い方を解説 |
| イテラブルとイテレータについて解説します |


