斐波那契迭代器

class fb(object):
def __init__(self):
self.items = []
self.number1 = 0
self.number2 = 1

def print_list(self, numbers):
while True:
if self.number2 < numbers:
self.number1, self.number2 = self.number2, self.number1 + self.number2
self.items.append(self.number1)
else:
break
print(self.items)

def __iter__(self):
myfb = fbda(self.items)
return myfb


class fbda(object):
def __init__(self, items):
self.items = items
self.current = 0

def __next__(self):
if self.current < len(self.items):
item = self.items[self.current]
self.current += 1
return item
else:
raise StopIteration

def __iter__(self):
return self


if __name__ == "__main__":
FB = fb()
FB.print_list(10)
aaa = iter(FB)
print(next(aaa))
print(next(aaa))
print(next(aaa))
print(next(aaa))
print(next(aaa))

猜你喜欢

转载自www.cnblogs.com/guducp/p/9113586.html
今日推荐