【发布时间】:2014-09-11 10:45:08
【问题描述】:
我有一个简单的协程
def id():
while True:
x = yield
yield x
我可以用它来创建一个生成器,并用next启动它
gen = id()
next(gen)
for x in gen:
print(x)
这将永远打印None。我的直觉是,id 的生成器只会在 sent 对它产生一个值后才生成 yield 值,但在这种情况下,它会自行生成 None 值。
有人可以向我解释这种行为吗? x = yield 语句是否默认 x 为 None?
【问题讨论】: