yield 的作用就是把一个函数变成一个 generator,
带有 yield 的函数不再是一个普通函数,
Python 解释器会将其视为一个 generator
简单示例:
#encoding:UTF-8 def yield_test(n): for i in range(n): yield call(i) print("i=",i) #做一些其它的事情 print("do something.") print("end.") def call(i): return i*2 #使用for循环 for i in yield_test(5): print(i,",")
运行结果:
>>> 0 , i= 0 2 , i= 1 4 , i= 2 6 , i= 3 8 , i= 4 do something. end. >>> 从运行结果可以看到,下次迭代时代码从yield的下一跳语句开始执行。