python迭代器类( 手写)

 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

 

posted @ 2022-03-03 22:16  小白duzw  阅读(155)  评论(0)    收藏  举报