この記事では、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 で追加された機能
- いくつかのイテレータなどをまとめるために使う
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ
ジェネレータの定義と使い方を解説 |
イテラブルとイテレータについて解説します |