我正在学习 Python yield,发现这yield不仅是生成器输出返回值的方式,也是将值放入生成器的方式。例如下面的代码
def f():
print (yield),
print 0,
print (yield),
print 1
g = f()
g.send(None)
g.send('x')
g.send('y')
在全局范围内,它是生成器send的值'x',因此将在其中输出。但我无法理解'y'fx 0 y 1
- 有 2
yield秒,但有 3send秒。为什么要None第一时间发送? StopIteration它最后抛出一个send。有什么办法可以避免这个异常?
谁能解释一下?提前致谢。