6.9 迭代器
到目前为止,你可能已注意到许多容器对象都可以用for语句进行循环:
这种访问风格清楚简洁方便。 迭代器的应用是python遍历统一。在这种场景背后,for语句调用容器对象iter()方法。函数返回一个迭代器对象。在迭代器对象里定义了每次只能访问一个元素的方法_next_()。 当容器里面没有元素的时候,该方法就会抛出一个stopInteration异常,用来提醒for循环终止。你可以用内置的next()调用_next_方法:以下这个例子显示它时如何工作的。
想必你已经看到迭代器背后的实现机制,给你自己的类添加一个迭代器是很容易实现的。定义一个_iter_()方法用来返回一个包含_next_()方法的对象。如果类中定义了_next_()方法,那么_iter_()就会返回本身。