问答详情
源自:1-2 yield生成器实现斐波那契数列

调用yield生成器问题

    # 生成器方法耗时
    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


提问者:慕村1348781 2019-11-27 16:52

个回答

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

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