生成器是一种特殊的迭代器,内部支持了生成器协议,不需要明确定义__iter__()和next()方法.生成器通过生成器函数产生,生成器函数可以通过常规的def语句来定义,但是不用return返回,而是用yield一次返回一个结果. 一.yield和迭代器生成器 迭代器是非常高效的类型,无论是从时间复杂度,还是从空间复杂度.而实现迭代器的代码虽然简单,却也繁琐.为此,python定义了一个yield关键字,专门用来构造迭代器.yield有生成,产生的意思. yield的功能和return非常类似,…