迭代器:
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 ③