【Python】在Python中自定义迭代器Iterator

来源:互联网 发布:网络诈骗教育考试题库 编辑:程序博客网 时间:2024/05/16 17:19

Python中迭代器本质上是每次调用.next()都返回一个元素或抛出StopIteration的容器对象。
在Python中其实没有“迭代器”这个类,具有以下2个特性的类都可以被称为“迭代器”类:
1、有next方法,返回容器的下一个元素或抛出StopIteration异常;
2、有__iter__方法,返回迭代器本身;

自定义迭代器的例子(来自《Expert Python Programming(Python高级编程)》)

 python2.x版本:

class MyIterator(object):def __init__(self, step):self.step = stepdef next(self):"""Returns the next element."""if self.step == 0:raise StopIteratorself.step -= 1return self.stepdef __iter__(self):"""Returns the iterator itself."""return self


 

 

 

原创粉丝点击