什么是迭代器?它是一个带状态的对象,在你调用next()方法的时候返回容器中的下一个值,任何实现了__iter__和__next__()(python2中实现next())方法的对象都是迭代器,__iter__返回迭代器自身,__next__返回容器中的下一个值,如果容器中没有更多元素了,则抛出StopIteration异常。可迭代对象实现了__iter__方法,该方法返回一个迭代器对象,本文主要介绍Python 定义迭代器。

Python 常用术语

1、定义一个迭代器

要创建一个对象/类作为迭代器,必须实现__iter__()__next__()方法。

正如在Python 类和对象一章中所了解的那样,所有类都有一个名为__init__()的函数,该函数可以在创建对象时进行一些初始化。

__iter__()方法的行为类似,可以执行操作(初始化等),但必须始终返回迭代器对象本身。

__next__()方法还允许进行操作,并且必须返回序列中的下一项。

例如:

创建一个返回数字(从1开始)的迭代器,每个序列将增加一个(返回1,2,3,4,5等):

class MyNumbers:
    def __iter__(self):
        self.a = 1
        return self

    def __next__(self):
        x = self.a
        self.a += 1
        return x

myclass = MyNumbers()
myiter = iter(myclass)

print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))

相关文档:

Python 迭代器教程

Python 迭代器(Iterator)

Python 迭代器(Iterator)和可迭代(Iterable)

Python 遍历迭代器

Python 定义迭代器

Python 迭代器中的StopIteration

Python 常用术语

推荐文档