我一直在学习发送方法和产量分配如何在生成器中工作并遇到一个问题:
def gen():
for i in range(5):
x = yield i
print(x)
s = gen()
print(next(s))
print(s.send(15))
Run Code Online (Sandbox Code Playgroud)
输出:
0 #after print(next(s))
15
1
Run Code Online (Sandbox Code Playgroud)
所以它会在 后打印 15 和 1 print(s.send(15))。它打破了我对yield的理解,因为我不明白为什么它在打印x后会产生1。我想知道是否有人知道答案。