在函数内一旦存在yield关键字,调用函数并不会执行函数体代 码 会返回一个生成器对象,生成器即自定义的迭代器。
def func():
print('第一次')
yield 1
print('第二次')
yield 2
print('第三次')
yield 3
print('第四次')
g=func()
print(g)
# 生成器就是迭代器
g.__iter__()
g.__next__()
自定义迭代器实现range功能:
def my_raneg(start,end,step):
while start<end:
yield start
start+=step
num=my_raneg(1,10,2)
print(next(num))
print(next(num))
print(next(num))
print(next(num))