Python 迭代器与生成器( 二 )

分析一下流程:

  1. 调用生成器函数时只返回一个 generator 对象 f,函数并没有执行;
  2. 通过 for 循环生成器才开始执行,执行到 #1 yield prev 处,返回 yield 处的参数 prev,此时就打印出了1;
  3. 继续 for 循环,生成器函数将在上一次停止的语句处继续执行,遇到 #2 yield curr 返回,此时又打印出了1;
  4. 如此反复,直到i大于20跳出循环结束调用 。
对比迭代器和生成器,实现同样的功能,生成器会显得更加优雅简洁 。
迭代
一句话总结迭代:按照一定的顺序逐个访问容器中每一个元素的过程;也就是我们折腾斐波那契序列的过程
限于篇幅,生成器就介绍到这里,但生成器的威力远不止此,下一篇将通过生成器和 yield 引出协程和异步IO等 。
 

【Python 迭代器与生成器】


推荐阅读