生成器

如何得到自定义的迭代器:

在函数内一旦存在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))
posted @ 2020-03-24 19:21  江湖有梦  阅读(150)  评论(0编辑  收藏  举报