Python 一切皆对象,实现了__iter__和__next__(python3)或next(python2)的特殊方法的对象,称作迭代器类。
常见迭代器:list,str, tuple, map, set等可通过for ... in方式访问的序列。
其作用与生成器相同,参考《Python 生成器》
定义方式:
# 定义 class Demo(object): def __init__(self): self.d = 0 self.index = 0 def __iter__(self): return self # 返回一个迭代器, 一般为self def next(self): if self.index < 10: self.d += 10 self.index += 1 return self.d raise StopIteration # 结束时抛出StopIteration # 访问 d = Demo() # next方式获取数据 print d.next() print d.next() # for ... in方式获取数据 for item in d: print item