生成器
生成器(generator)是构造可迭代对象的一种简单方式。与函数直接返回单个值不同,生成器以延迟的方式返回一个值的序列,每次返回一个值后暂停,直到下一个值被请求。创建生成器只需将函数中的return替换为yeild即可:
1 | def gen(): |
它也可以使用另一种更简洁的表达式来构造。它类似与列表、字典和集合的推导式,将列表推导式的方括号改为圆括号即可:
1 | gen = (x ** 2 for x in range(100)) |
生成器表达式可以取代列表推导式,直接作为函数参数:
1 | sum(x ** 2 for x in range(100)) |