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库urllib与urllib2主要区别分析
Jul 13 Python
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
Python contextlib模块使用示例
Feb 18 Python
python字符串中的单双引
Feb 16 Python
老生常谈Python基础之字符编码
Jun 14 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
python字典排序的方法
Oct 12 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
python 如何实现遗传算法
Sep 22 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读取csc文件并输出
2015/05/21 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
Python编写电话薄实现增删改查功能
2016/05/07 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
pandas数据拼接的实现示例
2020/04/16 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
公司年底活动方案
2014/08/17 职场文书
公司周年庆典标语
2014/10/07 职场文书