欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

迭代器

程序员文章站 2022-03-15 19:37:50
...
迭代器只不过是一个实现迭代器协议的容器对象。它基于两个方法:
(1) next 返回容器的下一个项目
(2) __iter__ 返回迭代器本身

迭代器可以通过使用一个iter内建函数和一个序列来创建:

>>> i = iter('abc')
>>> i.next()
'a'
>>> i.next()
'b'
>>> i.next()
'c'
>>> i.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>>


当序列遍历完时,将抛出一个StopIteration异常。这将使迭代器与循环兼容,因为它们
将捕获这个异常以停止循环。

要创建定制的迭代器,可以编写一个具有next方法的类,只要该类能够提供返回迭代器实
例的__iter__特殊方法。

>>> class MyIterator(object):
... def __init__(self, step):
... self.step = step
... def next(self):
... """Returns the next element."""
... if self.step == 0:
... raise StopIteration
... self.step -= 1
... return self.step
... def __iter__(self):
... """Returns the iterator itself."""
... return self
...
>>> for e1 in MyIterator(4):
... print e1
...
3
2
1
0
相关标签: 迭代器