生成器是一种用普通的函数语法定义的迭代器。任何包含yield语句的函数称为生成器。生成器在每次调用next()的时候执行,遇到yield语句返回,再次执行时就从上次返回的yield语句处继续执行。但是我们创建一个生成器以后,基本上不会调用next()方法,而是通过for循环来迭代它。
nested = [[1,2],[3,4],[5]] def flatten(nested): for sublist in nested: for element in sublist: yield element for num in flatten(nested): print num