迭代器
程序员文章站
2022-03-15 19:37:50
...
迭代器只不过是一个实现迭代器协议的容器对象。它基于两个方法:
(1) next 返回容器的下一个项目
(2) __iter__ 返回迭代器本身
迭代器可以通过使用一个iter内建函数和一个序列来创建:
当序列遍历完时,将抛出一个StopIteration异常。这将使迭代器与循环兼容,因为它们
将捕获这个异常以停止循环。
要创建定制的迭代器,可以编写一个具有next方法的类,只要该类能够提供返回迭代器实
例的__iter__特殊方法。
(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
下一篇: 简简单单说下迭代器 (iterator)