-
可迭代对象(iterable):
- 可迭代对象是指实现了
__iter__()方法的对象。 - 可迭代对象可以使用
for循环来遍历,也可以通过iter()函数将其转换为迭代器对象。 - 它可以返回一个新的迭代器对象,每次请求时从起始值开始递增。
- 例子:列表、元组、字符串、集合、字典等。
- 可迭代对象是指实现了
-
迭代器对象(iterator):
- 迭代器对象是指实现了
__iter__()和__next__()方法的对象。 - 迭代器对象可以逐个提供元素,每次调用
__next__()方法都返回下一个元素。 - 它可以使用
iter()函数获取自身的引用,也可作为可迭代对象在for循环中使用。 - 迭代器对象通常在内部使用了某种状态来记录当前位置,因此只能向前遍历,无法回到之前的元素。
- 在耗尽所有元素后,迭代器对象会引发
StopIteration异常,表示没有更多的元素可供获取。 - 例子:
range()返回的对象、文件对象、生成器等。
- 迭代器对象是指实现了