调用yield生成器问题

来源:1-2 yield生成器实现斐波那契数列

慕村1348781

2019-11-27 16:52

    # 生成器方法耗时
    t3 = time.time()
    f=fab2(maxnum)
    while True:
        try:
            x = next(f)
        except StopIteration as e:
            break
    t4 = time.time()
    print('fab2 total tims %.2f ' % (1000*(t4-t3)) + ' ms')

这样调用才正确,结果是yield更慢,因为要等待next()的调用

我运行的几次结果:

fab1 total tims 116.01  ms
fab2 total tims 128.01  ms


写回答 关注

1回答

  • 慕村1348781
    2019-11-27 16:55:13

    yield用法可参见廖雪峰的教程https://www.liaoxuefeng.com/wiki/1016959663602400/1017318207388128

Python数据预处理(二)- 清洗文本数据

教会你使用Python数据预处理

9371 学习 · 26 问题

查看课程

相似问题