Python程式設計:生成器yield與yield from區別簡單理解
阿新 • • 發佈:2019-01-30
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