python

超轻量级php框架startmvc

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

更新时间:2020-06-21 20:18:01 作者:startmvc
1、实现__getitem__(self)classLibrary(object):def__init__(self):self.value=['a','b','c','d','e']def__getitem__(self,i)

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 对象 可迭代