6.9 迭代器
到眼下为止。你可能已注意到很多容器对象都能够用for语句进行循环:
这样的訪问风格清楚简洁方便。
迭代器的应用是python遍历统一。在这样的场景背后。for语句调用容器对象iter()方法。
函数返回一个迭代器对象。在迭代器对象里定义了每次仅仅能訪问一个元素的方法_next_()。 当容器里面没有元素的时候,该方法就会抛出一个stopInteration异常,用来提醒for循环终止。你能够用内置的next()调用_next_方法:下面这个样例显示它时怎样工作的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3hiMDg0MTkwMTExNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
想必你已经看到迭代器背后的实现机制。给你自己的类加入一个迭代器是非常easy实现的。定义一个_iter_()方法用来返回一个包括_next_()方法的对象。假设类中定义了_next_()方法,那么_iter_()就会返回本身。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3hiMDg0MTkwMTExNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">