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