Проблема при попытке создать генератор Python - PullRequest
2 голосов
/ 14 марта 2011

Я пытаюсь научиться использовать генераторы, поэтому я написал этот, но он все время печатает одно и то же значение. Зачем?

Я хочу генерировать значения от 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 ]

8 голосов
/ 14 марта 2011

Поскольку вы генерируете генератор снова и снова.

Попробуйте:

f = gen_a()
f.next()
f.next()
6 голосов
/ 14 марта 2011

Вы создаете новый генератор каждый раз.Попробуйте вместо этого:

>>> g = gen_a()
>>> g.next()
999
>>> g.next()
998
>>> g.next()
997
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...