迭代器

2019-10-09  本文已影响0人  先爔

实现自己的迭代器

我们以生成斐波那契數列为例,创建一个迭代器类:

class Fab(object):
    
    def __init__(self, max):
        self.max = max
        self.n = 0
        self.a = 0
        self.b = 1
        
    def __iter__(self):
        return self
    
    def __next__(self):
        if self.n < self.max:
            r = self.b
            self.a, self.b = self.b, self.a + self.b
            self.n = self.n + 1
            return r
        raise StopIteration()

主要实现两个方法:iternext
调用方式如下:

for n in Fab(5):
    print(n) 

结果如下:

1
1
2
3
5
上一篇下一篇

猜你喜欢

热点阅读