码迷,mamicode.com
首页 > 其他好文 > 详细

生成器函数

时间:2019-04-09 09:22:19      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:start   调用函数   三次   test   fun   .exe   int   迭代   .com   

  • 生成器函数定义
    #函数中定义了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

    生成器函数

    标签:start   调用函数   三次   test   fun   .exe   int   迭代   .com   

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

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!