1 class Iterator: #自定义迭代器
2 def __init__(self, Iteratorlist) -> None:
3 self.iteratorlist = Iteratorlist
4 self.index = 0
5
6 def __next__(self): #复写基类(迭代器)的next函数
7 if self.index + 1 > len(self.iteratorlist):
8 raise StopIteration()
9 item = self.iteratorlist[self.index]
10 self.index += 1
11 return item
12
13 class IteratorList: #自定义可迭代对象
14 def __init__(self, list):
15 self.list = list
16
17 def __iter__(self): #复写基类(可迭代对象的)的iter函数
18 return Iterator(self.list)
19
20 class People:
21 pass
22
23 iter_list = IteratorList([People(), People(), People(), People()])
24
25 iterator = iter_list.__iter__()
26
27 while True:
28 try:
29 item = iterator.__next__()
30 print(item)
31 except:
32 break