1 yield作为函数的返回值
当yield作为函数的返回值的时候,这个函数就是一个generator,函数的返回就是一个iterator了,这个时候就可以用next函数遍历了。
yield每次会返回一个值,next会去取下一个值,直到遍历完yield生成的最后一个值为止。
而python的for循环本身就自带这个一个next函数。
所以:
for i in “yield的函数的返回值”:
print i
会对应打印yiled每次返回的值。
非常好用的用法。
2 函数中yield后面还有语句
这些yield后面的语句在前一次yield返回后会冻住执行,等到下一次next(iterater)时,会从冻住的地方开始执行,先执行yield后面的语句,然后再执行该函数。也就是说,yield后面的语句等到下一次函数调用前执行。