Python迭代器有什么用?Python迭代器原理是什么

在学习python的过程中,有一些涉及到程序调用和运行的概念会比较难理解 。本文就会介绍python内部执行过程中的一个组件-迭代器,往下看看吧 。

Python迭代器有什么用?Python迭代器原理是什么

文章插图
到目前为止,大家可能已经注意到大多数容器对象都可以使用for语句,例如:
for char in "123":    print(char)for line in open("myfile.txt"):print(line, end='')【Python迭代器有什么用?Python迭代器原理是什么】这种访问风格清晰、简洁又方便 。迭代器的使用非常普遍并使得Python成为一个统一的整体 。在幕后,for语句会在容器对象上调用iter() 。该函数返回一个定义了__next__()方法的迭代器对象,此方法将逐一访问容器中的元素 。当元素用尽时,__next__()将引发StopIteration异常来通知终止for循环 。你可以使用next()内置函数来调用__next__()方法;这个例子显示了它的运作方式:

>>> s = 'c'>>> it = iter(s)>>> next(it)'c'>>> next(it)Traceback (most recent call last):  File "<stdin>", line 1, in <module>    next(it)StopIteration看过迭代器协议的幕后机制,给你的类添加迭代器行为就很容易了 。定义一个__iter__()方法来返回一个带有__next__()方法的对象,如果类已定义了__next__(),则__iter__()可以简单地返回self,示例如下:
class Reverse:
    def __next__(self):
        if self.index == 0:
            raise StopIteration
        self.index = self.index - 1
        return self.data[self.index]
以上就是python迭代器的原理和实现方法了,希望对你有所帮助 。

    推荐阅读