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
# 創(chuàng)建一個迭代器對象
counter = SimpleCounter(1, 5)
# 使用迭代器
for number in counter:
print(number)
在這個例子中,SimpleCounter
類實現了迭代器協議。__iter__()
方法返回迭代器對象本身,而__next__()
方法負責返回序列中的下一個值。當沒有更多元素時,__next__()
方法會引發(fā)StopIteration
異常,通知循環(huán)終止。