Python 一切皆对象,实现了__iter__和__next__(python3)或next(python2)的特殊方法的对象,称作迭代器类。

常见迭代器:list,str, tuple, map, set等可通过for ... in方式访问的序列。

其作用与生成器相同,参考《Python 生成器》

定义方式:

# 定义
class Demo(object):

    def __init__(self):
        self.d = 0
        self.index = 0

    def __iter__(self):
        return self                 # 返回一个迭代器, 一般为self

    def next(self):
        if self.index < 10:
            self.d += 10
            self.index += 1
            return self.d
        raise StopIteration         # 结束时抛出StopIteration


# 访问
d = Demo()
# next方式获取数据
print d.next()
print d.next()

# for ... in方式获取数据
for item in d:
    print item

 

posted on 2020-08-30 17:26  lwp-boy  阅读(130)  评论(0编辑  收藏  举报