@概述
- 生成器是一种分多次进行“返回”(即生成)的函数;
- 生成器是迭代器的一种,所以一个生成器对象可以通过next(mgenerator)的方式来进行轮询迭代,也就是分批次地生成数据;
- 不同于常规函数,一次性地垄断一定的CPU时间片,完成返回后再彻底让出CPU,生成器是在每次生成(yield value)过后,暂时性地让出CPU执行权给外界,直到下一次的数据请求,即next(mgenerator)发生时,再重新拿回CPU的执行权;
- 即:请求一次生成一次,直至迭代结束(系统抛出StopIteration错误);
下面是一个简单的生成器函数:
# 一个简单的生成器函数
# 间断性地生成(“返回”)一个又一个的值
# 每生成一次,就将CPU执行权让出,直到外界next(generator)
def myGenerator():
mlist = [1, 2,