1. 程式人生 > >Python程式設計:生成器yield與yield from區別簡單理解

Python程式設計:生成器yield與yield from區別簡單理解

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