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统计日志ip访问数的方法
Jul 06 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
python学习教程之使用py2exe打包
Sep 24 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
python使用tornado实现简单爬虫
Jul 28 Python
python 保存float类型的小数的位数方法
Oct 17 Python
Python SMTP发送邮件遇到的一些问题及解决办法
Oct 24 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
aws 通过boto3 python脚本打pach的实现方法
May 10 Python
基于python实现复制文件并重命名
Sep 16 Python
Python读取多列数据以及用matplotlib制作图表方法实例
Sep 23 Python
python 绘制正态曲线的示例
Sep 24 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判断是否为json格式的方法
2014/03/04 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
Valerio 发布了 Mootools
2006/09/23 Javascript
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
git进行版本控制心得详谈
2017/12/10 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
详解python中@的用法
2019/03/27 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
初一体育教学反思
2014/01/29 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
小学生操行评语大全
2014/04/22 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
防卫过当辩护词
2015/05/21 职场文书
导游词之清晏园
2019/11/22 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python