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使用递归解决全排列数字示例
Feb 11 Python
python重试装饰器示例
Feb 11 Python
Python3.x中自定义比较函数
Apr 24 Python
win10环境下python3.5安装步骤图文教程
Feb 03 Python
Python绘制3d螺旋曲线图实例代码
Dec 20 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
python导入模块交叉引用的方法
Jan 19 Python
python中Ansible模块的Playbook的具体使用
May 28 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
Jun 12 Python
python字典的值可以修改吗
Jun 29 Python
浅析Python 条件控制语句
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
收集的php编写大型网站问题集
2007/03/06 PHP
php 获取一个月第一天与最后一天的代码
2010/05/16 PHP
php在线代理转向代码
2012/05/05 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
script标签属性用type还是language
2015/01/21 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
angular内置provider之$compileProvider详解
2017/09/27 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
node.js环境搭建图文详解
2018/09/19 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
python实现括号匹配的思路详解
2018/08/23 Python
python基于递归解决背包问题详解
2019/07/03 Python
深入了解Django中间件及其方法
2019/07/26 Python
python中count函数知识点浅析
2020/12/17 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
采购类个人求职的自我评价
2014/02/18 职场文书
活动总结报告范文
2014/05/04 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2015大学迎新标语
2015/07/16 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL