推荐答案
-- -------------------- ---- ------- ----- ----------- --- -------------- ------ --------- - ---- ---------- - - --- --------------- ------ ---- --- --------------- -- ---------- -- --------------- ----- ------------- ----- - --------------------- ---------- -- - ------ ----- - ---- ------- - --- -- -- -- -- ----------- - ------------------- --- ---- -- ------------ -----------
本题详细解读
1. 什么是迭代器?
迭代器是 Python 中用于遍历集合(如列表、元组、字典等)的对象。它实现了两个特殊方法:__iter__()
和 __next__()
。
2. __iter__()
方法
__iter__()
方法返回迭代器对象本身。这个方法使得对象可以被迭代,通常在 for
循环中使用。
3. __next__()
方法
__next__()
方法返回集合中的下一个元素。如果没有更多的元素可供迭代,它会引发 StopIteration
异常,表示迭代结束。
4. 自定义迭代器的实现步骤
- 初始化:在
__init__()
方法中,初始化迭代器所需的数据和索引。 - 实现
__iter__()
:返回迭代器对象本身。 - 实现
__next__()
:返回下一个元素,并在没有更多元素时引发StopIteration
异常。
5. 示例代码解析
MyIterator
类接受一个列表data
作为输入,并在__init__()
方法中初始化索引index
。__iter__()
方法返回self
,表示对象本身是可迭代的。__next__()
方法检查索引是否超出数据范围,如果超出则引发StopIteration
异常,否则返回当前元素并递增索引。
6. 使用自定义迭代器
通过 for
循环遍历自定义迭代器时,Python 会自动调用 __iter__()
和 __next__()
方法,直到 StopIteration
异常被引发为止。