生成器函数
Posted
tags:
篇首语:本文由小常识网(cha138.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: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
- 生成器函数使用循环,(详情见: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
以上是关于生成器函数的主要内容,如果未能解决你的问题,请参考以下文章