def sp():
i = 0
while True:
for j in range(i):
yield(j)
i+=1
Run Code Online (Sandbox Code Playgroud)
这个生成器应该yield是rangeof的所有整数(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
Run Code Online (Sandbox Code Playgroud)
这正是你所期望的.每次,你从0开始i,然后转到任何状态,然后再从0开始,再到下一个值i.
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |