moonss456 2017-06-13 02:27 采纳率: 100%
浏览 925
已采纳

关于python生成器的问题 谢谢

def o():
n = 1
while True:
n = n + 2
yield n

next(o())
3
next(o())
3
next(o())
3

为什么用next(o()) 生成的不是3579 而是一直是3

  • 写回答

1条回答 默认 最新

  • a350062174 2017-06-13 02:42
    关注

    next(o()) 每次都创建了一个新的生成器. 改成只创建一次.

     def o():
        n = 1
        while True:
            n = n + 2
            yield n
    a=o();
    print(next(a))
    print(next(a))
    print(next(a))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办