迭代器:
一个类如果实现了以下两个方法,它的实例就是迭代器。
__iter__
:这个方法返回对象本身,即self
__next__
:这个方法每次返回迭代的值,在没有可迭代元素时,抛出StopIteration
异常
迭代器可通过for循环迭代。
可迭代对象:
一个类只实现了__iter__方法,没有实现__next__方法。
但是它在__iter__方法里面,返回的是一个迭代器,所以该类的对象是可迭代对象。
一个可迭代对象虽然没有实现__next__方法,但是它的__iter__方法里面返回的是与一个迭代器,而迭代器里面实现了__next__方法。那么可迭代对象,就能把迭代的细节交给__iter__方法返回的迭代器。