Python中迭代器本质上是每次调用.next()都返回一个元素或抛出StopIteration的容器对象。
在Python中其实没有“迭代器”这个类,具有以下2个特性的类都可以被称为“迭代器”类:
1、有next方法,返回容器的下一个元素或抛出StopIteration异常;
2、有__iter__方法,返回迭代器本身;
自定义迭代器的例子(来自《Expert Python Programming(Python高级编程)》)
python2.x版本:
class MyIterator(object): def __init__(self, step): self.step = step def next(self): """Returns the next element.""" if self.step == 0: raise StopIterator self.step -= 1 return self.step def __iter__(self): """Returns the iterator itself.""" return self