生成器函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器函数相关的知识,希望对你有一定的参考价值。

  1. 生成器函数定义
    #函数中定义了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:myPyvenvScriptspython.exe F:/myPy/test.py
    调用函数1
    raa

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

结果:
F:myPyvenvScriptspython.exe F:/myPy/test.py
调用函数1
raa
调用函数2
roo

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

结果:
F:myPyvenvScriptspython.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:myPyvenvScriptspython.exe F:/myPy/test.py
    raa
    roo
    rtt

以上是关于生成器函数的主要内容,如果未能解决你的问题,请参考以下文章

Apollo Codegen 没有找到生成代码的操作或片段

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段

VSCode自定义代码片段——声明函数

vscode代码片段生成vue模板

VSCode自定义代码片段8——声明函数