Python 定义一个迭代器类

Document 对象参考手册 Python3 实例

在 Python 中,迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。要创建一个迭代器类,我们需要实现 __iter__()__next__() 方法。

实例

class MyIterator:
    def __init__(self, start, end):
        self.current = start
        self.end = end

    def __iter__(self):
        return self

    def __next__(self):
        if self.current < self.end:
            num = self.current
            self.current += 1
            return num
        else:
            raise StopIteration

# 使用迭代器
my_iter = MyIterator(1, 5)
for num in my_iter:
    print(num)

代码解析:

  • __init__ 方法:初始化迭代器,设置起始值 start 和结束值 end
  • __iter__ 方法:返回迭代器对象本身,这是迭代器协议的一部分。
  • __next__ 方法:返回迭代器的下一个值。如果当前值小于结束值,则返回当前值并将当前值加1;否则,抛出 StopIteration 异常,表示迭代结束。

输出结果:

1
2
3
4

Document 对象参考手册 Python3 实例