python 将对象设置为可迭代的两种实现方法


Posted in Python onJanuary 21, 2019

1、实现 __getitem__(self)

class Library(object):
  def __init__(self):
    self.value=['a','b','c','d','e']


  def __getitem__(self, i):
    if i>=len(self.value):
      raise IndexError("out of index")
    value=self.value[i]
    return value

调用的时候,系统默认从0 开始传入,并使得i=i+1

2、实现 __iter__(self),next(self)

class Library2(object):
  def __init__(self):
    self.value=['a','b','c','d','e']
    self.i=-1
  def __iter__(self):
    return self
  def next(self):
    self.i += 1
    if self.i>=len(self.value):
      raise StopIteration
    return self.value[self.i]
    
 test=Library2()
 print test.next()
 print test.next()

在这里可以像生成器一样使用

以上这篇python 将对象设置为可迭代的两种实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python自动化测试之setUp与tearDown实例
Sep 28 Python
Python性能优化技巧
Mar 09 Python
Python实现多并发访问网站功能示例
Jun 19 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
【python】matplotlib动态显示详解
Apr 11 Python
python对象与json相互转换的方法
May 07 Python
Python绘图之二维图与三维图详解
Aug 04 Python
Python进行区间取值案例讲解
Aug 02 Python
Python开发简易五子棋小游戏
May 02 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 Python
python读取mat文件生成h5文件的实现
Jul 15 Python
python 实现敏感词过滤的方法
Jan 21 #Python
python执行精确的小数计算方法
Jan 21 #Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 #Python
python dict 相同key 合并value的实例
Jan 21 #Python
关于python之字典的嵌套,递归调用方法
Jan 21 #Python
对python 合并 累加两个dict的实例详解
Jan 21 #Python
python去重,一个由dict组成的list的去重示例
Jan 21 #Python
You might like
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
php cout<<的一点看法
2010/01/24 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
JAVASCRIPT IE 与 FF中兼容问题小结
2009/02/18 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
详解Python的Django框架中的模版继承
2015/07/16 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
协议书范本
2014/04/23 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技