生成器
yield关键字:只能用在函数内
在函数内但凡包含有yield关键字,再去执行函数,就不会立刻运行函数体代码了
会得到一个返回值,该返回值成之为生成器对象,生成器本质就是迭代器
总结yield:
1. 提供一种自定义迭代器的解决方案
2. yield可用于返回值
yield VS return
相同点:都可以用于返回值
不同点:yield可以暂停函数,yield可以返回多次值,而return只能返回值一次值函数就立刻终止
def func(): print('=====>第一次') yield 1 print('=====>第二次') yield 2 print('=====>第三次') yield 3 print('=====>第四次') print(func) g=func() print(g) #<function func at 0x00000000027A9510> #<generator object func at 0x000000000263A318>生成器
__next__方法执行与next()方法相同
实例:
def range1(start,end,step): while start<end: yield start start+=step g=range1(1,100,2) for item in g: print(item)