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装饰器 免去调用父类构造函数的麻烦
May 18 Python
Python读写文件方法总结
Jun 09 Python
Python抽象类的新写法
Jun 18 Python
两个使用Python脚本操作文件的小示例分享
Aug 27 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
python 列表转为字典的两个小方法(小结)
Jun 28 Python
python set内置函数的具体使用
Jul 02 Python
用Python徒手撸一个股票回测框架搭建【推荐】
Aug 05 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
Jan 29 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 IP转换整形(ip2long)的详解
2013/06/06 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
js 事件小结 表格区别
2007/08/13 Javascript
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
Python 线程池用法简单示例
2019/10/02 Python
使用python远程操作linux过程解析
2019/12/04 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
浅谈Python __init__.py的作用
2020/10/28 Python
Python之Sklearn使用入门教程
2021/02/19 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
商务日语毕业生自荐信
2013/11/23 职场文书
人力资源总监工作说明
2014/03/03 职场文书
初中团委工作总结
2015/08/13 职场文书
护士岗位竞聘书
2015/09/15 职场文书
月考总结与反思
2015/10/22 职场文书
详解CSS3浏览器兼容
2022/12/24 HTML / CSS