python 迭代器详解
可迭代对象:只要定义了__iter__()方法,我们就说该对象是可迭代对象,并且可迭代对象能提供迭代器。
迭代器:实现了__next__()或者next()(python2)方法的称为迭代器,迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁,因此只占用固定的内存。
迭代:当我们使用一个循环来遍历某个东西时,这个过程本身就叫迭代。迭代器迭代的元素只能往前不能后退。
1、为何用迭代器
下面用生成斐波那契数列为例子,说明为何用迭代器
2、如何使用迭代器
使用next()方法访问下一个元素
python处理迭代器越界是抛出StopIteration异常
了解了StopIteration,可以使用迭代器进行遍历了:
3、for语法
幸运的是python提供的for语句语法为迭代提供了方便的使用方法。在for循环中,Python将自动调用工厂函数iter()获得迭代器,自动调用next()获取元素,还完成了检查StopIteration异常的工作。