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 logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
python+pyqt实现12306图片验证效果
Oct 25 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
python print出共轭复数的方法详解
Jun 25 Python
解决Python3 抓取微信账单信息问题
Jul 19 Python
django基于cors解决跨域请求问题详解
Aug 06 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
python各层级目录下import方法代码实例
Jan 20 Python
通过代码实例了解Python异常本质
Sep 16 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
基于Python实现流星雨效果的绘制
Mar 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
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
JS实现打字游戏
2019/12/17 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详解numpy.meshgrid()方法使用
2019/08/01 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
Python any()函数的使用方法
2019/10/28 Python
如何基于Python实现数字类型转换
2020/02/07 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
什么是servlet链?
2014/07/13 面试题
运动会广播稿300字
2014/01/10 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
结婚十年感言
2015/07/31 职场文书
Nginx动静分离配置实现与说明
2022/04/07 Servers
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js