什么是迭代器?
迭代器就是重复地去做一些事情,可以简单地理解为循环。迭代器是一个对象,若要实现一个迭代器,类中需要有__iter__()和—__next__()方法,缺一不可。
简单的写一个迭代器:
class Test():
def __init__(self):
self.count = 0
self.a = [1, 2, 3]
def __repr__(self):
return 'hello'
def __str__(self):
return 'world'
def __iter__(self):
return self
def __next__(self):
if self.count >= len(self.a):
raise StopIteration()
value = self.a[self.count]
self.count += 1
return value
for i in Test():
print i
打印结果:
1
2
3
可以看到,__iter__()方法需返回一个可迭代的对象,此例中是自己;__next__方法返回每次迭代的值,当迭代结束时,需抛出StopIteration()异常。