生成器
什么是生成器:
生成的工具
生成器是一个“自定义”的迭代器, 本质上是一个迭代器
如何实现生成器?
但凡函数内部定义了的yield ,调用函数时,函数体代码不会执行
会返回一个结果,该结果就是一个生成器
yield:
每一次yield 都会往生成器对象中添加一个值
- yield 只能在函数内部定义
- yield 可以保存函数的暂停状态
yield 与 return :
-
相同点:
返回的个数都是无限制的
不同点:
return 只能返回一次值,yield可以返回多次
自定义range功能,创建一个自定义的生成器
def my_range(start, end, move = 1): while start < end: yield start start += move for i in my_range(1,5) print(i)