戻り値が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>