首页>热点 > 正文

Python迭代器的__iter__和__next__详细教程

2023-08-09 19:53:31    出处:博客园


(资料图片仅供参考)

在 Python 中,迭代器是一个实现了 __iter____next__方法的对象。__iter__方法返回迭代器对象自身,而 __next__方法返回下一个元素。换句话说,迭代器是一个可以逐个返回元素的对象。

下面是一个简单的迭代器示例,演示了如何实现 __iter____next__方法:

class MyIterator:    def __init__(self, max_value):        self.max_value = max_value        self.current_value = 0    def __iter__(self):        return self    def __next__(self):        if self.current_value >= self.max_value:            raise StopIteration        value = self.current_value        self.current_value += 1        return value

该迭代器可以生成从 0 到 max_value - 1的整数序列。__iter__方法返回迭代器对象自身,而 __next__方法返回下一个元素。当没有更多元素时,__next__方法引发 StopIteration异常,表示迭代已完成。

下面的示例演示了如何使用 MyIterator类来迭代并打印从 0 到 4 的整数序列:

it = MyIterator(5)for i in it:    print(i)

输出:

01234

在循环中,for语句自动调用 iter()函数获取迭代器,然后重复调用 __next__方法获取下一个元素,直到发生 StopIteration异常为止。

关键词:

消费
产业
骆驼股份:公司将严格按照相关法律法规规定及时履行信息披露义务 骆驼股份60131108月09日在投资者关系平台上答复了投资者关心的问题投资
2023年长治中小学开学时间表 具体几月几号开学 2023长治中小学暑假9月1日正式开学。开学上下楼梯不要慌张、不要拥挤,
桓台县马桥镇小王村联合东圈村开展环境卫生整治大提升 鲁中网淄博8月8日讯为切实巩固环境整治成果,提升村居环境质量,桓台县
鹤壁:2500万元资金全力保障防汛救灾 “市财政第一时间安排1000万元的防汛救灾补助资金,用于应急抢险救援救
基金