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

时间:2022-12-10 11:07:08

1、实现 __getitem__(self)

?
1
2
3
4
5
6
7
8
9
10
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)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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对象设置为可迭代的两种实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/ZhanYunQI/article/details/70215678