python迭代函数

__iter__()__next__()是Python中可迭代对象和迭代器的两个核心函数。

可迭代对象是指实现了__iter__()函数的对象,而迭代器是指实现了__iter__()__next__()函数的对象。迭代器通过__next__()函数实现逐个访问元素的功能。

具体来说,__iter__()函数用于返回一个迭代器对象,而__next__()函数则用于返回容器中的下一个元素。如果容器中已经没有元素可以迭代了,__next__()函数应该引发StopIteration异常。

下面是一些示例代码:

class MyList:
    def __init__(self):
        self.data = [1, 2, 3, 4]
        self.index = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.index >= len(self.data):
            raise StopIteration
        value = self.data[self.index]
        self.index += 1
        return value

# 创建可迭代对象
mylist = MyList()

# 使用for循环遍历
for item in mylist:
    print(item)

在上面的示例代码中,MyList类实现了__iter__()__next__()函数,因此它是一个可迭代对象和迭代器。在使用for循环遍历时,Python会自动调用__iter__()函数获取迭代器对象,并使用__next__()函数逐个读取元素。输出结果是:

1
2
3
4

需要注意的是,当一个对象既是可迭代对象,又是迭代器时,它应该返回自己本身。即__iter__()函数应该返回self,而不是另外一个实现了__next__()函数的对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值