python面向对象-__iter__、__next__和迭代器原理

需要掌握:python之Iterable和Iterator

概述

迭代器实现原理:类同时实现了 __iter__() 、__next__() 方法

__iter__()

实现 __iter__() 方法,返回 迭代器 对象,就可用于 for ... in 语句

在 for ... in 语句中,首先执行 __iter__() 方法,仅 执行一次

注意: while 语句 不会调用 __iter__() 方法

__next__()

实现 __next__() 方法后,可支持2个功能:

  • for...in... 语句就会不断调用该迭代器对象的 __next__() 方法,获取下一个值,直到遇到StopIteration异常时退出循环。

  • 通过 next() 方法 获取下一个值,直到抛StopIteration异常。

注意:也就是说 for...in... 语句中会获取该迭代对象的下一个值,next()方法 也会获取该迭代对象的下一个值,所以 不要同时使用

案例

python实现增强版的iter()函数


原文出处:/show_1EF2D9P4Udhf.html