python yield的用法

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后面的语句等到下一次函数调用前执行。

原文地址:https://www.cnblogs.com/hustdc/p/7530847.html