生成器
生成器generator
- 生成器指的是生成器对象,可以由生成器表达式得到,也可以使用yield关键字得到一个生成器函数,调用这个函数得到一个生成器对象。
- 生成器对象,是一个可迭代对象,是一个迭代器
- 生成器对象,是延迟计算、惰性求值的
生成器函数
- 函数体中包含yield语句的函数,就是生成器函数,调用后返回生成器对象
m = (i for i in range(5)) #生成器表达式
print(type(m))
<class 'generator'>
print(next(m))
0
print(next(m))
1
def inc(): #生成器函数
for i in range(5):
yield i
print(type(inc))
<class 'function'>
print(type(inc()))
<class 'generator'>
g = inc()
print(type(g))
<class 'generator'>
print(next(g))
0
for x in g: