python __iter____next__
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__相关推荐
- gj3 Python数据模型(魔法函数)
3.1 什么是魔法函数 类里面,实现某些特性的内置函数,类似 def __xx__(): 的形式. 不要自己定义XX,并不是和某个类挂钩的 class Company(object):def __in ...
- Python学习:魔法函数
一.什么是魔法函数(网络用语) 以双下划线开始,双下滑线结尾.魔法函数是为了增强一个类的特性. 魔法函数可以随意定义某个类的特性,这些方法在进行特定的操作时会自动被调用. 1 需求:封装一个员工列表, ...
- Github配置(git+vscode+python+jupyter)
①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...
- 【实验楼】python简明教程
①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...
- 【Kaggle Learn】Python 5-8
五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...
- 【Kaggle Learn】Python 1-4
[Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...
- 使用python愉快地做高数线代题目~
今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...
- python 位运算与等号_Python 运算符
和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...
- python减小内存占用_如何将Python内存占用缩小20倍?
当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...
最新文章
- django--02 模板的使用
- MySQL备份恢复工具xtrabackup
- 8种最有效的网站推广方案
- linux操作系统cp命令
- 计算机视觉论文doc,嘉炬-计算机视觉论文资料.doc
- 体验VSTS源代码管理之一
- 【纪中集训】2019.08.10【NOIP提高组】模拟 A 组TJ
- mysql各种key_SQL中的各种键
- PCQQ official算法逆向
- word使用过程中遇到的问题记录(二):如何画柱状图和折线图的组合图?
- 制作字幕.html教程,手机拍的视频如何加字幕 字幕制作软件使用教程
- 视频教程-uni-app实战仿微信app开发-Webapp
- 《微信读书》产品分析报告
- vue中鼠标悬停显示提示信息
- 郭禹缘:鲍威尔释放鹰派言论,国际黄金或跌势重启后市分析。
- lmbench内存延迟测试代码分析
- 三维空间中的旋转--旋转向量
- 【淘宝SEO技巧】淘宝SEO优化|淘宝搜索排名规律|淘宝宝贝标题优化
- 大众集团「换舵手」,软件战略从「自研优先」转向开放协作
- 机器学习-知识点总结
热门文章
- 华为鸿蒙安全认证,手机系统哪家强,华为鸿蒙系统获得国际安全标准最高等级认证,强不强?...
- 从零开始学前端:作用域、执行顺序 --- 今天你学习了吗?(JS:Day9)
- windows环境下IDEA安装和配置和第一个IDEA项目运行加常用快捷键
- python抠图_python 网站自动抠图
- kcf算法中cos_window是什么意思_知网/维普查重系统算法介绍(史上最详细)
- Python+matplotlib绘制动态更新的柱状图
- Python使用OpenCV+pillow提取AVI视频中关键帧图像
- Python使用pycuda在GPU上并行处理批量判断素数
- php判断平年和闰年,平年和闰年的三种判断方法
- mysql 数据缓冲区,MySQL写入缓冲区在数据库中的作用( Change Buffer )