生成器
生成器 一. 生成器的定义: 生成器的本质就是迭代器 ,在python社区中,大多数时候都把迭代器和生成器是做同一个概念。生成器和迭代器,唯一的不同就是:迭代器都是Python给你提供的已经写好的工具或者通过数据转化得来的,(比如文件句柄,iter([1,2,3])。 生成器是需要我们自己用python代码构建的工具 。最大的区别也就如此了。 二、生成器的构成 生成器表达式 通过生成器函数 python内置函数或模块提供 三、生成器函数 def func(): print(11) return 22 ret = func() print(ret) 将函数中的return换成yield,这样func就不是函数了,而是一个生成器函数 def func(): print(11) yield 22 ret = func() print(ret) 注意:结果 <generator object func at 0x031E5CB0> 执行这个函数的时候,就不再是函数的执行了,而是获取这个生成器对象. 生成器的本质就是迭代器,迭代器如果取值,生成器就如何取值 四、生成器的取值 def func(): print(11) yield 22 qener = func() # 这个时候函数不会执行,而是获取到生成器(就是那个内存地址!!) ret = next(qener) # 这个时候函数才会执行