自己构造一个迭代器
from collections.abc import Iterator
class Iter():
def __init__(self,a):
self.n=len(a)
self.p=0
self.a=a
def __iter__(self):
return self
def __next__(self):
if self.p==self.n :
raise StopIteration()
self.p=self.p+1
return self.a[self.p-1]
a=[1,2,3,4,5]
iter=Iter(a)
print(type(iter))
print([i for i in iter])
print(isinstance(iter,Iterator))
结果:
<class '__main__.Iter'>
[1, 2, 3, 4, 5]
True