专栏首页python3python3 函数迭代器

python3 函数迭代器

迭代器协议:

迭代器协议,是指对象(实例)能够使用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])

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 散列表结构 字典与集合

    散列表(Hash Table)结构是字典(Dictionary)和集合(Set)的一种实现方式。散列算法的作用是尽可能快地在数据结构中找到一个值。在散列表上插入...

    py3study
  • python 长连接 mysql数据库

    python链接mysql中没有长链接的概念,但我们可以利用mysql的ping机制,来实现长链接功能

    py3study
  • python操作mysql数据库

    py3study
  • 散列表结构 字典与集合

    散列表(Hash Table)结构是字典(Dictionary)和集合(Set)的一种实现方式。散列算法的作用是尽可能快地在数据结构中找到一个值。在散列表上插入...

    py3study
  • 使用OpenCV实现道路车辆计数的使用方法

    在本教程中,我们将仅使用Python和OpenCV,并借助背景减除算法非常简单地进行运动检测。

    砸漏
  • 手把手教你用Python开发“剪刀石头布”小游戏【附源码】

    最近在学习PyQt5可视化界面,这是一个内容非常丰富的gui库,相对于tkinter库,功能更加强大,界面更加美观,操作也不难。于是我开始小试牛刀,用PyQt...

    python学习教程
  • 用 Python 写个坦克大战

    坦克大战是一款策略类的平面射击游戏,于 1985 年由 Namco 游戏公司发布,尽管时至今日已经有了很多衍生类的游戏,但这款游戏仍然受到了相当一部分人的欢迎,...

    纯洁的微笑
  • html5点击出现燃放烟花特效

    今天我发现了一个非常好的html特效,是由HTML5来实现的,效果非常绚丽。效果如下:

    无邪Z
  • 生成对抗网络(GAN)系列:WGAN与金融时序(附代码)

    过拟合是我们试图将机器学习技术应用于时间序列时遇到的问题之一。出现这个问题是因为我们使用我们所知道的唯一时间序列路径来训练我们的模型:已实现的历史。

    量化投资与机器学习微信公众号
  • 6.wxPython防止窗体重画棋子消失的机制

    可以画图的类中wx.ClientDC不必依赖窗体绘画事件,可以随时实例化,随时画图。但是窗体最小化之后再恢复,重画的窗体上通过wx.ClientDC绘制的棋子会...

    用户4381798

扫码关注云+社区

领取腾讯云代金券