在Python中,迭代器协议是一个内置协议,它定义了一个迭代器对象必须实现的方法。迭代器协议包括两个方法:__iter__()
和 __next__()
。下面是一个简单的示例,展示了如何实现一个迭代器协议:
class MyIterator: def __init__(self, start, end): self.start = start self.end = end def __iter__(self): return self def __next__(self): if self.start >= self.end: raise StopIteration else: self.start += 1 return self.start - 1 # 创建一个迭代器对象 my_iterator = MyIterator(0, 5) # 使用for循环遍历迭代器 for number in my_iterator: print(number)
在这个示例中,我们创建了一个名为 MyIterator
的类,它接受两个参数:start
和 end
。这两个参数定义了迭代器的范围。
__iter__()
方法返回迭代器对象本身,这样我们就可以在for
循环中使用这个迭代器。__next__()
方法负责返回序列中的下一个值。当没有更多的元素可以返回时,它会引发StopIteration
异常,通知for
循环停止迭代。
当我们使用 for
循环遍历 MyIterator
对象时,它会按顺序打印出从 start
到 end - 1
的整数。