在Python中,迭代器是一個實現(xiàn)了__iter__()
和__next__()
方法的對象。__iter__()
方法返回迭代器對象本身,而__next__()
方法返回容器的下一個值。當容器中沒有更多元素時,__next__()
方法會拋出StopIteration
異常。
要實現(xiàn)一個迭代器,你需要定義一個類,并在其中實現(xiàn)這兩個方法。下面是一個簡單的例子,實現(xiàn)了一個計數(shù)器迭代器:
class Counter:
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
# 使用計數(shù)器迭代器
counter = Counter(1, 6)
for num in counter:
print(num)
在這個例子中,Counter
類實現(xiàn)了__iter__()
和__next__()
方法,使其成為一個迭代器。當我們使用for
循環(huán)遍歷counter
對象時,__next__()
方法會逐個返回容器中的元素,直到拋出StopIteration
異常,表示遍歷結(jié)束。