class MyIterator(object):
def __init__(self, end):
self.start = 0
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.start < self.end:
ret = self.start
self.start += 1
return ret
else:
raise StopIteration
a = MyIterator(5)
for i in a:
print(i)
0
1
2
3
4
for i in a
for i in enumerate(a)
这里的a这种迭代对象,映射的是类里面的__iter__函数,
此函数返回的是一个实现了__next__的对象,
迭代一次就执行一次__next__函数