【问题标题】:Problem while trying to create python generator尝试创建 python 生成器时出现问题
【发布时间】:2011-03-14 16:44:47
【问题描述】:

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

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

【问题讨论】:

    标签: python generator


    【解决方案1】:

    因为您一遍又一遍地生成生成器。

    试试:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是的,我们同时回答,但我跑过去并粘贴输出,花了我一分钟。 ;_;
      猜你喜欢
      • 2018-02-13
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多