yield

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

ジェネレータについて

 

投稿日: