Pythonプログラミング:ジェネレータyieldとyield fromの違いの簡単な理解

2128 ワード

yield
yieldは値を返すだけでなく、値を受け取ることもできます.
# yield   ,    

def gen():
    for x in ["a", "b", "c"]:
        yield x

for i in gen():
    print(i)

# a b c
# yield   ,   
def gen():
    while True:
        x = yield
        print("x = %s"% x)

g = gen()
next(g)  #    yield,      send(None) ”  (prime)“  
g.send(10)
g.send(20)
g.send(30)
g.close()
"""
x = 10
x = 20
x = 30
"""

yield from
yield from呼び出しジェネレータ
#      

def gen():
    yield from ["x", "y", "z"]

for i in gen():
    print(i)

# x y z

リファレンス
  • pythonコラボレーション2:yield from入門から
  • に精通
  • python yieldとyield from