每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。...我们对一个iterable用for ... in ...进行迭代时,实际是先通过调用iter()方法得到一个iterator,假设叫做X.然后循环地调用X的next()方法取得每一次的值,直到iterator...,而形如(elem for elem in [1, 2, 3])的表达式,称为generator expression,实际使用与generator无异.
>>> a = (elem for elem...表达式的值,函数中又将该值赋给了变量s,然后print函数打印s,循环再遇到yield,暂停返回....,它的实现更简单优雅.
yield是生成器实现__next__()方法的关键.它作为生成器执行的暂停恢复点,可以对yield表达式进行赋值,也可以将yield表达式的值返回.