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迭代器和生成器介绍
Mar 06 Python
Python回文字符串及回文数字判定功能示例
Mar 20 Python
使用Python检测文章抄袭及去重算法原理解析
Jun 14 Python
django 通过URL访问上传的文件方法
Jul 28 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
查看端口并杀进程python脚本代码
Dec 17 Python
python logging添加filter教程
Dec 24 Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 Python
关于Tensorflow使用CPU报错的解决方式
Feb 05 Python
python3 配置logging日志类的操作
Apr 08 Python
python打开文件的方式有哪些
Jun 29 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 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
Win下如何安装PHP的APC拓展
2013/08/07 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
python实现简单点对点(p2p)聊天
2017/09/13 Python
python实现二叉查找树实例代码
2018/02/08 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
python opencv如何实现图片绘制
2020/01/19 Python
Python @property及getter setter原理详解
2020/03/31 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
美德好少年主要事迹
2014/01/29 职场文书
伊索寓言教学反思
2014/05/01 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
医生个人年终总结
2015/02/28 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
关于环保的宣传稿
2015/07/23 职场文书
python基础之错误和异常处理
2021/10/24 Python