python 将对象设置为可迭代的两种实现方法

yipeiwu_com6年前Python基础

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字符串连接方式汇总

在python中有很多字符串连接方式,今天就在这里具体总结一下: ①.最原始的字符串连接方式:str1 + str2 ②.python 新字符串连接语法:str1, str2 ③.奇怪的...

pytorch + visdom 处理简单分类问题的示例

pytorch + visdom 处理简单分类问题的示例

环境 系统 : win 10 显卡:gtx965m cpu :i7-6700HQ python 3.61 pytorch 0.3 包引用 import torch from...

Python去掉字符串中空格的方法

我们经常在处理字符串时遇到有很多空格的问题,一个一个的去手动删除不是我们程序员应该做的事情,今天这篇技巧的文章【听图阁-专注于Python设计】就来给大家讲一下,如何用Python去除字...

Python遍历numpy数组的实例

在用python进行图像处理时,有时需要遍历numpy数组,下面是遍历数组的方法: [rows, cols] = num.shape for i in range(rows - 1...

Python RabbitMQ消息队列实现rpc

Python RabbitMQ消息队列实现rpc

上个项目中用到了ActiveMQ,只是简单应用,安装完成后直接是用就可以了。由于新项目中一些硬件的限制,需要把消息队列换成RabbitMQ。 RabbitMQ中的几种模式和机制比Acti...