温馨提示×

Python迭代器协议如何定义

小樊
84
2024-11-01 23:12:06
栏目: 编程语言
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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异常,通知循环终止。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:Python迭代器协议是否支持自定义对象

0