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