有一个疑问是 能不能在生成器函数中写return 试验之后结果是可以的:
def h():
print('Wen Chuan')
yield 5
return 666
c
= h
()
a
= next(c
)
try:
b
= next(c
)
except StopIteration
as e
:
print(e
.value
)
print(a
)
Wen Chuan
666
5
return 之后代表当前的生成器已经结束了,再次next()的时候会引起StopIteration异常,此时return的内容会在 错误信息的第一个参数里返回,就是 e.value
关于 python 的 yield from 参考这篇文章,写得不错