我正在尝试使用 yield 在每次迭代中生成新数字,如下所示:
def nextSquare():
i = 1
# An Infinite loop to generate squares
while True:
yield i*i
i += 1 # Next execution resumes
# from this point
当我尝试:
>>> for num in nextSquare():
if num > 100:
break
print(num)
我得到了想要的输出:
1
4
9
16
25
36
49
64
81
100
但是当我尝试时:
next(nextSquare())
它总是产生相同的旧结果。难道我做错了什么?我没有在 for 循环中生成新数字,而是对按需生成感兴趣。