优草派  >   Python

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

罗西汉            来源:优草派

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

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

到目前为止,大家可能已经注意到大多数容器对象都可以使用for语句,例如:

for char in "123":
    print(char)
for line in open("myfile.txt"):
print(line, end='')

这种访问风格清晰、简洁又方便。迭代器的使用非常普遍并使得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迭代器的原理和实现方法了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行