class Fib:
def __init__(self, mx):
self.a, self.b = 1, 1
self.mx = mx
def __iter__(self):
return self
def __next__(self):
self.a, self.b = self.b, self.a + self.b
if self.a <= self.mx:
return self.a
else:
raise StopIteration
def Fib2(mx):
a, b = 1, 1
while True:
a, b = b, a + b
if a <= mx:
yield a
else:
raise StopIteration
for i in Fib(100):
print(i)
for i in Fib2(100):
print(i)
迭代器与生成器
最新推荐文章于 2018-08-11 11:02:10 发布