Python斐波拉契生成器与迭代器

迭代器:
class Fib:                                        ①
    def __init__(self, max):                      ②
        self.max = max

    def __iter__(self):                           ③
        self.a = 0
        self.b = 1
        return self

    def __next__(self):                           ④
        fib = self.a
        if fib > self.max:
            raise StopIteration                   ⑤
        self.a, self.b = self.b, self.a + self.b
        return fib                                ⑥
生成器:
def fib(max):
    a, b = 0, 1          ①
    while a < max:
       yield a          ②
        a, b = b, a + b  ③

你可能感兴趣的:(Python斐波拉契生成器与迭代器)