def sp():
i = 0
while True:
for j in range(i):
yield(j)
i+=1
此生成器应该产生
(0, i)
的范围
中的所有整数,但它一直返回 0
每次调用 next()
。为什么?
谢谢。
最佳答案
不,它没有。这是输出:
>>> s=sp()
>>> s
<generator object sp at 0x102d1c690>
>>> s.next()
0
>>> s.next()
0
>>> s.next()
1
>>> s.next()
0
>>> s.next()
1
>>> s.next()
2
>>> s.next()
0
>>> s.next()
1
>>> s.next()
2
>>> s.next()
3
>>> s.next()
0
>>> s.next()
1
>>> s.next()
2
>>> s.next()
3
>>> s.next()
4
这正是您所期望的。每次,您从 0 开始并转到 i
的任何位置,然后再次从 0 开始直到 i
的下一个值。
关于Python:生成器失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385747/