什么是生成器?
只要在函数体中出现yield关键字,那么再执行函数体代码时就会得到一个结果
def fun()
print('y1')
yiled 1
print('y2')
yiled 2
print('y3')
yiled 3
生成器就是迭代器
g=func()
res1=next(g)
print(res1)
res2=next(g)
print(res2)
res3=next(g)
print(res3)
yield为我们提供了一种自定义迭代器对象的方法
yield可以保存函数体代码运行或者暂停的状态,并可以返回多个值,但是return只可以返回一个值
def my_range(start,stop,strp=1):
while start <stop:
yield start
start+=step
g=my_range(1,5,2)
print(g)
print(next(g))
print(next(g))
print(next(g))
print(next(g))
用for实现
for i in my_range(1,5,2):
print(i)