关键字yield是用来产生生成器的关键词。
1.生成器
生成器是一个可迭代的对象,他只能被遍历一次,而且其中的数据实时生成,可以有效降低内存压力。
2.yield只能用于函数内,此时该函数变为生成器函数,每调用一次该函数该函数就会生成一次数据,数据一般由循环语句生成,而yield会记住循环所进行的位置,在下一次调用时,循环不会重头开始,而是会进入上一轮循环后紧接进行的循环。
示例如下:
def yield_test(n):
for i in range(n):
yield i
print("i=",i)
for i in yield_test(5):
print('this time i = ',i)