yield只能定义在function中,用来返回一个generator。当知道函数将返回一组只需读取一次的巨大值时,它会很方便。来看下以下例子
def gen2(): print('begin....') for x in range(2): print('aa') yield x print('bb') yield x+1 print('cc') print('end....') factory = gen2()
依次运行N次以下代码时,将输出什么内容?
next(factory)
第一次
begin.. aa 0
第二次
bb 1
第三次
cc aa 1
第四次
bb 2
第五次之后
``
cc
end...
Traceback (most recent call last):
File "
next(factory)
StopIteration
``
总结:
当运行含有yield的generator时,每次迭代会在遇到一个yield时停止。
来源:https://www.cnblogs.com/yeni/p/12187418.html