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发送form-data请求及拼接form-data内容的方法
Mar 05 Python
python实现数据预处理之填充缺失值的示例
Dec 22 Python
对Python3之进程池与回调函数的实例详解
Jan 22 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
Python3 使用pillow库生成随机验证码
Aug 26 Python
python区分不同数据类型的方法
Oct 14 Python
简单了解python元组tuple相关原理
Dec 02 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
Python实现Word文档转换Markdown的示例
Dec 22 Python
python3实现常见的排序算法(示例代码)
Jul 04 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
我的论坛源代码(十)
2006/10/09 PHP
用PHP的ob_start() 控制您的浏览器cache
2009/08/03 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
PHP中将网页导出为Word文档的代码
2012/05/25 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
php单一接口的实现方法
2015/06/20 PHP
设定php简写功能的方法
2019/11/28 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
Python 开发Activex组件方法
2009/11/08 Python
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
如何在 Django 模板中输出 "{{"
2020/01/24 Python
初学者学习Python好还是Java好
2020/05/26 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
《我的第一本书》教学反思
2014/02/15 职场文书
投标服务承诺书
2014/05/28 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
部队2015年终工作总结
2015/04/02 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis