python 迭代器

来源:互联网 发布:算法makeheap运算 编辑:程序博客网 时间:2024/06/06 01:26

什么是迭代器?

迭代器就是重复地去做一些事情,可以简单地理解为循环。迭代器是一个对象,若要实现一个迭代器,类中需要有__iter__()和next()方法,缺一不可。

简单的写一个迭代器:

class Test():    def __init__(self):        self.count = 0        self.a = [1, 2, 3]    def __repr__(self):        return 'hello'    def __str__(self):        return 'world'    def __iter__(self):        return self    def next(self):        if self.count >= len(self.a):            raise StopIteration()        value = self.a[self.count]        self.count += 1        return valuefor i in Test():    print i

打印结果:

1
2
3

可以看到,__iter__()方法需返回一个可迭代的对象,此例中是自己;next方法返回每次迭代的值,当迭代结束时,需抛出StopIteration()异常。





原创粉丝点击