在Python中,迭代器協(xié)議是一個內(nèi)置協(xié)議,它定義了一個迭代器對象必須實(shí)現(xiàn)的方法。迭代器協(xié)議包括兩個方法:__iter__()
和 __next__()
。下面是一個簡單的示例,展示了如何實(shí)現(xiàn)一個迭代器協(xié)議:
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
# 創(chuàng)建一個迭代器對象
my_iterator = MyIterator(0, 5)
# 使用for循環(huán)遍歷迭代器
for number in my_iterator:
print(number)
在這個示例中,我們創(chuàng)建了一個名為 MyIterator
的類,它接受兩個參數(shù):start
和 end
。這兩個參數(shù)定義了迭代器的范圍。
__iter__()
方法返回迭代器對象本身,這樣我們就可以在 for
循環(huán)中使用這個迭代器。__next__()
方法負(fù)責(zé)返回序列中的下一個值。當(dāng)沒有更多的元素可以返回時,它會引發(fā) StopIteration
異常,通知 for
循環(huán)停止迭代。當(dāng)我們使用 for
循環(huán)遍歷 MyIterator
對象時,它會按順序打印出從 start
到 end - 1
的整數(shù)。