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的类实例属性访问规则探讨
Jan 30 Python
python实现数独算法实例
Jun 09 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
python判断计算机是否有网络连接的实例
Dec 15 Python
Python生成一个迭代器的实操方法
Jun 18 Python
基于python的selenium两种文件上传操作实现详解
Sep 19 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
python matplotlib如何给图中的点加标签
Nov 14 Python
python中count函数知识点浅析
Dec 17 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 Python
Python使用protobuf序列化和反序列化的实现
May 19 Python
Pandas数据类型之category的用法
Jun 28 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随机生成数字字母组合的方法
2015/03/18 PHP
PHP中使用BigMap实例
2015/03/30 PHP
php实现session共享的实例方法
2019/09/19 PHP
jquery 插件学习(三)
2012/08/06 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
javascript解析json实例详解
2014/11/05 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
新电JAVA笔试题目
2014/08/31 面试题
初中三年学生的学习自我评价
2013/11/13 职场文书
毕业生就业推荐信范文
2013/12/01 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
服务承诺书格式
2014/05/21 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
置业顾问岗位职责
2015/02/09 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
办公室管理规章制度
2015/08/04 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
pandas中pd.groupby()的用法详解
2022/06/16 Python