溫馨提示×

Python迭代器協議如何定義

小樊
82
2024-11-01 23:12:06
欄目: 編程語言

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)終止。

0