首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3 函数迭代器

python3 函数迭代器

作者头像
py3study
发布2020-01-03 10:50:42
2880
发布2020-01-03 10:50:42
举报
文章被收录于专栏:python3python3

迭代器协议:

迭代器协议,是指对象(实例)能够使用next函数获取下一项数据,在没有下一项数据之前触发一个StopIteration异常来终止迭代

next(it)  对应__next__(self)方法

iter(obj) 对应__iter__(self)方法,通常返回一个可迭代对象

class odd:

    def __init__(self,begin,end):

        self.beg = begin

        self.end = end 

        self.cur = begin   #数据的当前位置

    def __next__(self):

        """print("next被调用")"""

        if self.cur >= self.end:

            raise StopIteration

        #此判断获取一个奇数,

        if self.cur % 2 == 0:

            self.cur += 1

        r = self.cur

        self.cur += 1   #步长

        return r

    def __iter__(self):

        """__iter__被调用,返回自己作为迭代器,每次返回一个可迭代对象,调用一次__iter__"""    

        self.cur = self.beg

        return self

o = odd(5,10)

for x in o:

    print(x)

print([x for x in o])

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档