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 02 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
Python实现字符串匹配算法代码示例
Dec 05 Python
Python实现的用户登录系统功能示例
Feb 05 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
python基于event实现线程间通信控制
Jan 13 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
Keras - GPU ID 和显存占用设定步骤
Jun 22 Python
关于Python错误重试方法总结
Jan 03 Python
python如何进行基准测试
Apr 26 Python
Pytorch 如何实现常用正则化
May 27 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学习 运算符与运算符优先级
2008/06/15 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
JavaScript Sort 表格排序
2009/10/31 Javascript
javascript中的new使用
2010/03/20 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
selenium+python自动化测试之多窗口切换
2019/01/23 Python
python3实现点餐系统
2019/01/24 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
Python基于当前时间批量创建文件
2020/05/07 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
python爬虫 requests-html的使用
2020/11/30 Python
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
学生喝酒检讨书
2014/02/06 职场文书
眼镜促销方案
2014/03/15 职场文书
家长寄语大全
2014/04/02 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
2014年药房工作总结
2014/11/22 职场文书
整改通知书格式
2015/04/22 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android