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列表与元组详解实例
Nov 01 Python
在Python下尝试多线程编程
Apr 28 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
Python列表推导式与生成器用法分析
Aug 02 Python
Python2与Python3的区别实例分析
Apr 11 Python
利用Python实现手机短信监控通知的方法
Jul 22 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
Python3变量与基本数据类型用法实例分析
Feb 14 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
python dict如何定义
Sep 02 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
在Python中使用HTML模版的教程
2015/04/29 Python
Python快速从注释生成文档的方法
2016/12/26 Python
django用户登录和注销的实现方法
2018/07/16 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
python中判断文件结束符的具体方法
2020/08/04 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
士力架广告词
2014/03/20 职场文书
文明村创建实施方案
2014/03/27 职场文书
怎么写工作检讨书
2014/11/16 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
在js中修改html body的样式
2021/11/11 Javascript
Python socket如何解析HTTP请求内容
2022/02/12 Python