Python プログラミング メモ

ジェネレータ

ジェネレータ

関数の処理の途中で中断して、yieldを使う事で関数外の処理を実施しても、再びyieldの次から再開できる。

どうやったら効果を発揮するのだろうか?

実装例

def gen():
    print("A")
    yield "X"
    print("B")
    yield "Y"
    print("C")
    yield "Z"

gen_obj = gen()
print(next(gen_obj))
print("ここで関数genの外のprintを実行\ngen内に戻る")

print(next(gen_obj))
print("ここで関数genの外のprintを実行\ngen内に戻る")

print(next(gen_obj))
print("ここで関数genの最後の部分が出力される\n終了")

出力内容

A
X
ここで関数genの外のprintを実行
gen内に戻る
B
Y
ここで関数genの外のprintを実行
gen内に戻る
C
Z
ここで関数genの最後の部分が出力される
終了

 

-Python, プログラミング, メモ

Copyright© donguri.pyのblog , 2024 All Rights Reserved.