生成器有什么用?
简单来说,他能有效的帮我们提高程序运算速度和节约内存空间。
生成器是怎么工作的?
每一次调用生成器,生成器都会从上一次出现yeild的地方继续运行代码。如果是第一次运行生成器,那么生成器就会从函数的一开始开始运行(从接收参数的地方开始)。
def gen(num):
for i in range(num):
yield i ** 2#每次调用这个生成器执行到这个地方停止了,等待下次再调用继续从这个地方运行。
def main():
scq = gen(5) #返回生成器对象
for i in scq: #也可以这样写 for i in gen(5),这样写后上面那条语句就可以不要了
print(i)
main()
返回结果
0
1
4
9
16