戻り値がyieldの関数はforループで呼び出す。
def func1(): yield 1 yield 2 yield 3 for i in func1(): print(i)
実行結果。
$ python yield_test.py 1 2 3
yieldをreturnと同じように使用しようとすると、
def func1(): yield 1 yield 2 yield 3 print(func1())
以下のようなメッセージが表示される。
yieldを実装した関数はジェネレータを返すことがわかる。
$ python yield_test.py <generator object func1 at 0x7f1997ae4ac0>