首页 > 代码库 > python yeild 生成器
python yeild 生成器
python yeild 生成器
生成器函数在生成值后自动挂起并且暂停它的执行和状态(常常在从头计算整个系列的值或者手动保存和恢复类中的状态时,作为一种解决方案)
生成器在被挂起时自动保存状态,yield将函数挂起后将向调用者返回一个值
////////////////经过单步执行 可以看到(1)和(2)是交替执行的
>>> def gensqures(N): ////(1)
""""""
for i in range(N):
yield i**2
>>> for j in gensqures(5)://///(2)
print j,‘:‘,
0 : 1 : 4 : 9 : 16 :
>>> ========yeild机理
for循环与生成器工作起来是一样的:通过重复调用next方法,知道捕获一个异常
函数返回的是一个生成器对象,支持迭代器协议(也就是说,next方法可以开始这个函数或者从它上次yield值后的地方回复,以及在得到一系列的值的最后一个时,产生StopIteration)
>>> h=gensqures(5)
>>> h.next()
0
>>> h.next()
1
>>> h.next()
4
>>> h.next()
9
>>> h.next()
16
>>> h.next()
Traceback (most recent call last):
File "<pyshell#182>", line 1, in <module>
h.next()
StopIteration
python yeild 生成器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。