我正在尝试学习如何使用生成器,所以我写了这个,但它只是一直打印相同的值.为什么?
我希望它生成从999到100的值.
>>> def gen_a():
a=999
while a>99:
yield a
a-=1
>>> gen_a().next()
999
>>> gen_a().next()
999
>>> gen_a().next()
999
Run Code Online (Sandbox Code Playgroud)
因为你一遍又一遍地生成发电机.
尝试:
f = gen_a()
f.next()
f.next()
Run Code Online (Sandbox Code Playgroud)
你每次都在创造一个新的发电机.试试这个:
>>> g = gen_a()
>>> g.next()
999
>>> g.next()
998
>>> g.next()
997
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |