iter(object)会调用object的__iter__方法,所以需要在__iter__方法中返回一个可迭代的对象。
可迭代对象应该实现__next__方法,供next方法来调用,以实现迭代效果。

下例中iter(A())调用了A中的__iter__方法,返回了B的对象实例。
next(obj)调用B对象实例中的__next__方法来进行迭代

class A(object):def __iter__(self):return B()class B(object):def __init__(self):self.data = 1def __next__(self):self.data += 1return self.dataobj = iter(A())next(obj)

应用1:实现range

class MyRange(object):def __init__(self, end):self.start = 0self.end = enddef __iter__(self):return selfdef __next__(self):if self.start < self.end:ret = self.startself.start += 1return retelse:raise StopIterationa = MyRange(4)for i in a:print(i)

参考:
https://blog.csdn.net/xmlbm/article/details/99985678

python __iter____next__相关推荐

  1. gj3 Python数据模型(魔法函数)

    3.1 什么是魔法函数 类里面,实现某些特性的内置函数,类似 def __xx__(): 的形式. 不要自己定义XX,并不是和某个类挂钩的 class Company(object):def __in ...

  2. Python学习:魔法函数

    一.什么是魔法函数(网络用语) 以双下划线开始,双下滑线结尾.魔法函数是为了增强一个类的特性. 魔法函数可以随意定义某个类的特性,这些方法在进行特定的操作时会自动被调用. 1 需求:封装一个员工列表, ...

  3. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  4. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  5. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

  6. 【Kaggle Learn】Python 1-4

    [Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...

  7. 使用python愉快地做高数线代题目~

    今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...

  8. python 位运算与等号_Python 运算符

    和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...

  9. python减小内存占用_如何将Python内存占用缩小20倍?

    当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...

最新文章

  1. django--02 模板的使用
  2. MySQL备份恢复工具xtrabackup
  3. 8种最有效的网站推广方案
  4. linux操作系统cp命令
  5. 计算机视觉论文doc,嘉炬-计算机视觉论文资料.doc
  6. 体验VSTS源代码管理之一
  7. 【纪中集训】2019.08.10【NOIP提高组】模拟 A 组TJ
  8. mysql各种key_SQL中的各种键
  9. PCQQ official算法逆向
  10. word使用过程中遇到的问题记录(二):如何画柱状图和折线图的组合图?
  11. 制作字幕.html教程,手机拍的视频如何加字幕 字幕制作软件使用教程
  12. 视频教程-uni-app实战仿微信app开发-Webapp
  13. 《微信读书》产品分析报告
  14. vue中鼠标悬停显示提示信息
  15. 郭禹缘:鲍威尔释放鹰派言论,国际黄金或跌势重启后市分析。
  16. lmbench内存延迟测试代码分析
  17. 三维空间中的旋转--旋转向量
  18. 【淘宝SEO技巧】淘宝SEO优化|淘宝搜索排名规律|淘宝宝贝标题优化
  19. 大众集团「换舵手」,软件战略从「自研优先」转向开放协作
  20. 机器学习-知识点总结

热门文章

  1. 华为鸿蒙安全认证,手机系统哪家强,华为鸿蒙系统获得国际安全标准最高等级认证,强不强?...
  2. 从零开始学前端:作用域、执行顺序 --- 今天你学习了吗?(JS:Day9)
  3. windows环境下IDEA安装和配置和第一个IDEA项目运行加常用快捷键
  4. python抠图_python 网站自动抠图
  5. kcf算法中cos_window是什么意思_知网/维普查重系统算法介绍(史上最详细)
  6. Python+matplotlib绘制动态更新的柱状图
  7. Python使用OpenCV+pillow提取AVI视频中关键帧图像
  8. Python使用pycuda在GPU上并行处理批量判断素数
  9. php判断平年和闰年,平年和闰年的三种判断方法
  10. mysql 数据缓冲区,MySQL写入缓冲区在数据库中的作用( Change Buffer )