迭代器和可迭代对象

迭代是数据处理的基石。迭代器模式(Iterator):惰性获取数据的方式,即一次获取一个数据项。

Python解释器需要迭代对象x时, 会自动调用iter(x).

而内置的iter函数有以下作用:

(1)检查对象是否实现了__iter__方法, 如果实现了就调用它, 获取一个迭代器。

(2)如果没有实现了__iter__方法,但是实现了__getitem__方法, Python会创建一个迭代器, 尝试按顺序(从索引0开始)获取元素。

可迭代对象, 使用iter内置函数可以获取迭代器的对象,也就是说可迭代的对象必须实现__iter__方法,但不能实现__next__方法。

标准的迭代器接口实现了两个方法:

__next__ 返回下一个可用的元素, 如果没有元素了, 抛出StopIteration

__iter__ 返回self, 以便在应该使用可迭代对象的地方使用迭代器。

可迭代的对象和迭代器之间的关系是Python从可迭代对象中获取迭代器。

 

posted @ 2019-01-19 18:58  Frankssss  阅读(152)  评论(0编辑  收藏  举报