迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代。(只能往后走,不能往前退)。

可迭代对象:实现了迭代器协议的对象。(如何实现:对象内部定义一个__iter__()方法)。

协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max等函数)使用迭代器协议访问对象。

class Foo:n = 0l = list('tianxia')len = l.__len__()def __iter__(self):return selfdef __next__(self):if self.n == self.len:raise StopIteration('终止')s = self.l.pop(0)self.n += 1return sf1 = Foo()
for i in f1:print(i)

python六十四: 迭代器协议相关推荐

  1. python六十四课——高阶函数练习题(一)

    1.lt = ['sdfasdfa', 'ewqrewrewqr', 'dsafa12312fdsafd', 'safsadf'] --> 得到长度列表2.tp = ('TOM', 'Lilei ...

  2. [Python从零到壹] 六十四.图像识别及经典案例篇之图像傅里叶变换和傅里叶逆变换详解

    祝大家新年快乐,阖家幸福,健康快乐! 欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所 ...

  3. 信息系统项目管理师核心考点(六十四)信息安全基础知识重要概念

    科科过为您带来软考信息系统项目管理师核心重点考点(六十四)信息安全基础知识重要概念,内含思维导图+真题 [信息系统项目管理师核心考点]信息安全基础知识重要概念 1.加密技术 ①对称加密[加密与解密的秘 ...

  4. 自学Python第十四天- 一些有用的模块:urllib、requests 网络编程基础,向爬虫靠拢

    自学Python第十四天- 一些有用的模块:urllib.requests 网络编程基础,向爬虫靠拢 fake_useragent 库 安装 fake_useragent 使用 urllib 库 ur ...

  5. 【正点原子Linux连载】第六十四章 Linux 多点电容触摸屏实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  6. 《OpenCv视觉之眼》Python图像处理十四 :Opencv图像轮廓提取之Scharr算法和Canny算法

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  7. 孤荷凌寒自学python第十四天python代码的书写规范与条件语句及判断条件式

    孤荷凌寒自学python第十四天python代码的书写规范与条件语句及判断条件式 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 在我学习过的所有语言中,对VB系的语言比较喜欢,而对C系和J系 ...

  8. QT开发(六十四)——QT样式表(二)

    QT开发(六十四)--QT样式表 本文主要翻译自QT官方文档Qt Style Sheets . 五.QT样式表参考 QT样式表支持多种的属性.状态和子控件,使得定制组件的外观成为可能. 1.组件 以下 ...

  9. 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)

    设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型) 1.概述 类中的面向对象编程封装应用逻辑.类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态.单独的对象是一种组织代码的有用 ...

最新文章

  1. 数组元素替换_LeetCode 题解 | 189. 旋转数组
  2. fanuc机器人与plc的通讯_S7-1200PLC与FANUC机器人Profinet通讯方法
  3. CentOS中如何搭建Dubbo
  4. JDK1.5-1.7 比较二
  5. Dubbo-go 发布 1.5 版,朝云原生迈出关键一步
  6. Android UI线程和非UI线程
  7. 静态分配和动态分配内存的区别
  8. 以太坊源码分析——BlockChain
  9. 爬虫的增量式抓取和数据更新
  10. BigDecimal的异常记录:java.lang.ArithmeticException: Rounding necessary
  11. DP! | 不要怂!
  12. TP-Link发布网格路由器Deco M5
  13. php 生成缩略图保存,PHP批量生成图片缩略图的方法
  14. [BZOJ4987]Tree
  15. 【MySQL】MySQL show index 索引信息
  16. 使用读写管道作为事件通知的C++实现
  17. mysql管理工具-SQLyog管理工具
  18. 程序员生活_程序员,请您不要老是熬夜
  19. [病毒分析]远程木马创建傀儡进程分析
  20. java 判断两个经纬度差异_计算两个经纬度点的实际距离

热门文章

  1. HDU 4323 Magic Number(编辑距离DP)
  2. 开源MongoDB管理工具MongoCola1.20 发布 离开IBM GDC的最后一个版本
  3. Hyperic HQ HQU 插件开发指南
  4. centos7 源码编译安装mysql 5.7.21
  5. Linux下命令行的彩色终端
  6. 微软的Ajax库客户端Bug总结
  7. 惊天大谎:让穷人都能上网是Facebook的殖民阴谋?
  8. EMC与地之重新认识地
  9. Android SDK Manager国内下载缓慢的问题
  10. 服务器日志清理及IIS日志的清理