`

迭代器

阅读更多
迭代器只不过是一个实现迭代器协议的容器对象。它基于两个方法:
   (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
分享到:
评论

相关推荐

    java迭代器模式实现正反向遍历

    在Java编程语言中,迭代器模式(Iterator Pattern)是一种常用的设计模式,用于顺序访问集合对象中的元素,而无需暴露其底层表示。这种模式提供了一种方法来访问一个聚合对象的元素,而无需暴露该对象的内部结构。在...

    设计模式之迭代器模式(Iterator)

    迭代器模式是软件设计模式中的一种行为模式,它在编程中扮演着重要的角色,尤其是在处理集合数据时。迭代器模式的核心思想是提供一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。这种模式使得用户可以在不...

    设计模式的迭代器模式的例子

    迭代器模式是软件设计模式中的一种行为模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以方便...

    迭代器模式Demo

    迭代器模式是一种设计模式,它在软件工程中扮演着重要的角色,特别是在处理集合或容器类对象的遍历操作时。这种模式提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,...

    设计模式(C#)之迭代器模式(Iterator Pattern)

    迭代器模式是软件设计模式中的一种行为模式,它在C#等面向对象编程语言中有着广泛的应用。这个模式的主要目标是允许用户遍历一个聚合对象(如数组、集合或列表)的所有元素,而无需了解底层的实现细节。下面将详细...

    65丨迭代器模式(上):相比直接遍历集合数据,使用迭代器有哪些优势?1

    迭代器模式是一种行为设计模式,主要目的是在不暴露集合内部结构的情况下,允许外部代码遍历集合的所有元素。这种模式将遍历操作从集合类中分离出来,实现了数据结构和遍历机制的解耦。在大多数编程语言中,迭代器...

Global site tag (gtag.js) - Google Analytics