生成器
如果函数中包含yield语法,那这个函数就会变成生成器
#生成器,yield存储了上一次循环停留的位置,在迭代器进入查找时,会根据yield记录的位置继续往下进行
def func():
print(1111)
yield 'a'
print(2222)
yield 'b'
print(3333)
yield 'c'
reg=func()
ret1=reg.__next__()
print(ret1)
ret2=reg.__next__()
print(ret2)
ret3=reg.__next__()
print(ret3)
利用生成器模拟xrange
def mrange(args):
start = 0
while True:
if args > start:
return
start += 1
print(start)
mrange(10)
func是函数称为生成器,当执行此函数func()时会得到一个迭代器