#迭代器版本
class Fib:
def __init__(self):
self.left = 0
self.current = 1
def __iter__(self):
return self
def __next__(self):
value = self.current
self.left, self.current = self.current, self.current + self.left
return value
from itertools import islice
f = Fib()
print(list(islice(f, 11, 40)))
# 生成器版本的斐波拉且数列 def fib(): left,current = 0,1 while True: yield current # 能挂起代码,保留当前函数执行的上下文,状态 left,current = current, current+left f = fib() # 35 到46