python中迭代器的原理与使用

本文介绍了Python中迭代器的概念和使用方法。一个类实现`__iter__`方法即可变为可迭代,再实现`__next__`(在Python3中)方法则成为迭代器。迭代器主要用于遍历容器,如`for in`循环。文中展示了如何创建自定义迭代器,包括直接在类中实现迭代器方法和定义独立的迭代器类。直接在类中实现的迭代器只能遍历一次,而通过定义独立迭代器类可以提高扩展性和可修改性,便于实现不同遍历方式。
摘要由CSDN通过智能技术生成

python中,一个类只要实现了__iter__()方法,则称其为可迭代的,如果其又实现了next()方法(在python3中为__next__()方法,本文中不再进行说明),则可称其为迭代器。其中,__iter()__方法的用途是返回一个迭代器,并通过返回的迭代器的next()来迭代所需的容器。

迭代器的用处,主要是用来遍历一个我们需要的容器,如我们常见的for in循环,通过对于我们自己写的类添加迭代的方法,便可以使得我们的自定义的类可以像内置的列表一样,方便地通过for in来直接遍历。

以下是一个比较简单的迭代器的使用方法。

首先,假设我们有一个类MyArray,其中有一个字符串的列表self.elements

class MyArray(object):
    def __init__(self):
        self.elements = ["e1", "e2", "e3"]
        self.len = len(self.elements)

这时,我们知道,我们是无法直接遍历MyArray的,只能通过访问其中的元素来实现。这时,我们可以通过一种简单的方法来使得MyArray变成一个可迭代的类。

class MyArray(object):
    def __init__(self):
        self.elements = ["e1", "e2", "e3"]
        self.len = len(self.elements)
        self.pos = 0

    def __iter__(self):
        # 因为自身也为一个迭代器,因此直接返回自身即可
        return self

    def next(self):
        # StopIteration是以抛出异常的方式说明已经遍历完目标容器
        if self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值