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

Sun*_*y88 2 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
Run Code Online (Sandbox Code Playgroud)

Iac*_*cks 8

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

尝试:

f = gen_a()
f.next()
f.next()
Run Code Online (Sandbox Code Playgroud)

  • `next(f)`为2.6+ (2认同)

Mik*_*one 6

你每次都在创造一个新的发电机.试试这个:

>>> g = gen_a()
>>> g.next()
999
>>> g.next()
998
>>> g.next()
997
Run Code Online (Sandbox Code Playgroud)