首页 > 其他 > 详细

生成器函数

时间:2019-04-09 01:23:49      阅读:204      评论:0      收藏:0      [点我收藏+]
  • 生成器函数定义
    #函数中定义了yield,并不是普通函数,而是生成器函数
    #yield 返回数据,让函数分段执行
    #return 返回数据,结束本函数调用
    def fun():
     print(‘调用函数1‘)
     yield ‘raa‘
     print(‘调用函数2‘)
     yield ‘roo‘
     print(‘调用函数3‘)
     yield ‘rtt‘
     # print(‘报错‘)   #最后一个yield后面代码块,使用__next__迭代会报错
    g = fun()   #通过fun()创建生成器
    #第一次迭代(循环)
    print(g.__next__()) #返回raa

    结果:
    F:\myPy\venv\Scripts\python.exe F:/myPy/test.py
    调用函数1
    raa

  • #第一次迭代(循环)
    print(g.__next__()) #返回raa
    #第二次迭代(循环)
    print(g.__next__()) #返回roo

    结果:
    F:\myPy\venv\Scripts\python.exe F:/myPy/test.py
    调用函数1
    raa
    调用函数2
    roo

    #第一次迭代(循环)
    print(g.__next__()) #返回raa
    #第二次迭代(循环)
    print(g.__next__()) #返回roo
    #第三次迭代(循环)
    print(g.__next__()) #返回rtt

    结果:
    F:\myPy\venv\Scripts\python.exe F:/myPy/test.py
    调用函数1
    raa
    调用函数2
    roo
    调用函数3
    rtt

    1. 生成器函数使用循环,(详情见:for循环本质
      def fun():
       yield ‘raa‘
       yield ‘roo‘
       yield ‘rtt‘
      g = fun()   #生成器函数与for循环本质是一个迭代器,可以迭代
      for i in g: 
       print(i)

      结果:
      F:\myPy\venv\Scripts\python.exe F:/myPy/test.py
      raa
      roo
      rtt

    生成器函数

    原文:https://blog.51cto.com/13972320/2375625

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
    © 2014 bubuko.com 版权所有
    打开技术之扣,分享程序人生!