Python的迭代器协议是通过定义一个包含__iter__()
和__next__()
方法的对象来实现的
以下是一个简单的迭代器示例:
class SimpleCounter:
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
# 创建一个迭代器对象
counter = SimpleCounter(1, 5)
# 使用迭代器
for number in counter:
print(number)
在这个例子中,SimpleCounter
类实现了迭代器协议。__iter__()
方法返回迭代器对象本身,而__next__()
方法负责返回序列中的下一个值。当没有更多元素时,__next__()
方法会引发StopIteration
异常,通知循环终止。