yield是生成器,是一个迭代对象:
附上一个参考链接:https://www.jianshu.com/p/d09778f4e055
1、yield 是一个类似于 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。重点是:下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行。
2、简要理解:yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后(下一行)开始。
3、带有yield的函数不仅仅只用于for循环中,而且可用于某个函数的参数,只要这个函数的参数允许迭代参数。比如array.extend函数,它的原型是array.extend(iterable)。
代码示例1:
结果是:
理解的关键在于:下次迭代时,代码从yield的下一跳语句开始执行。