尝试创建python生成器时出现问题

时间:2011-03-14 16:44:48

标签: python generator

我正在尝试学习如何使用生成器,所以我写了这个,但它只是一直打印相同的值。为什么?

我希望它能够生成从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

2 个答案:

答案 0 :(得分:8)

因为你一遍又一遍地生成发电机。

尝试:

f = gen_a()
f.next()
f.next()

答案 1 :(得分:6)

每次都在创建一个新的生成器。试试这个:

>>> g = gen_a()
>>> g.next()
999
>>> g.next()
998
>>> g.next()
997