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 相关文章推荐
numpy中索引和切片详解
Dec 15 Python
Python 统计字数的思路详解
May 08 Python
wxPython的安装与使用教程
Aug 31 Python
python list格式数据excel导出方法
Oct 31 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
Python中base64与xml取值结合问题
Dec 22 Python
使用python实现飞机大战游戏
Mar 23 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
python利用faker库批量生成测试数据
Oct 15 Python
Django自带的用户验证系统实现
Dec 18 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
实用函数9
2007/11/08 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
php限制文件下载速度的代码
2015/10/20 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
JS实现页面打印功能
2017/03/16 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
Python json读写方式和字典相互转化
2020/04/18 Python
python logging模块的使用
2020/09/07 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
EJB面试题
2015/07/28 面试题
电气工程师岗位职责
2014/01/01 职场文书
大型营销活动计划书
2014/04/28 职场文书
项目建议书范文
2014/05/12 职场文书
信息员培训方案
2014/06/12 职场文书
基层党支部整改方案
2014/10/25 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书