菜单
  

    5.程序执行g.send(7),程序会从yield关键字那一行继续向下运行,send会把7这个值赋值给res变量

    6.由于send方法中包含next()方法,所以程序会继续向下运行执行print方法,然后再次进入while循环

     

    7.程序执行再次遇到yield关键字,yield会返回后面的值后,程序再次暂停,直到再次调用next方法或send方法。

    这就结束了,说一下,为什么用这个生成器,是因为如果用List的话,会占用更大的空间,比如说取0,1,2,3,4,5,6............1000

    你可能会这样:论文网

    for n in range(1000):

        a=n

    这个时候range(1000)就默认生成一个含有1000个数的list了,所以很占内存。

    这个时候你可以用刚才的yield组合成生成器进行实现,也可以用xrange(1000)这个生成器实现

    yield组合:

    def foo(num):

        print("starting...")

        while num<10:

            num=num+1

            yield num

    for n in foo(0):

        print(n)

    输出:

     

    starting...

     xrange(1000):

    for n in xrange(1000):

        a=n

     其中要注意的是python3时已经没有xrange()了,在python3中,range()就是xrange()了,你可以在python3中查看range()的类型,它已经是个<class 'range'>了,而不是一个list了,毕竟这个是需要优化的。 

  1. 上一篇:自带白胡子的绅士喵绅士
  2. 下一篇:阿里云ntp服务器地址和端口
  1. 未成年怎么茬手机上兼职...

  2. 投资3万以内的小生意,现...

  3. 属猪的和什么属相最配相...

  4. 四十多中年男人學什么技...

  5. 适合高中生赚钱的平台,...

  6. 适合没经验中年女人的创...

  7. 适合女人单独创业项目 适...

  8. 玫瑰精油特征香气成分研究

  9. 多级反馈队列调度算法的研究+源代码

  10. 身体自尊量表(PSPP)

  11. 街头游园设计

  12. Toeplitz定理及其应用+文献综述

  13. 货币国际化国内外研究现状

  14. 运动员广告形象塑造文献综述和参考文献

  15. 进出口贸易与经济增长文献综述和参考文献

  16. 甲硫醇钠生产工艺设计任务书

  17. 从何红舟《桥上的风景》中感受油画构成美

  

About

优尔论文网手机版...

主页:http://www.youerw.com

关闭返回