在 Python 中,迭代协议是指:一个对象如果支持迭代,则它需要提供一个名为__iter__
的方法,该方法返回一个迭代器;同时,该迭代器需要实现__next__
方法,用于返回下一个对象,或者在迭代结尾抛出StopIteration
异常以标志结束迭代。这两种方法都用于实现for
语句以及其他隐式执行迭代的操作。其实这就是 Python 的迭代协议规范。
需要注意的是,for
、in
、map
、zip
等迭代工具要操作的对象并不一定要实现__iter__
,实现了__getitem__
也可以,__getitem__
是数值索引迭代的方式,它的优先级低于__iter__
。