這是我的Fib SQUENCE迭代器:如何修改Python運算符?
class fibo:
def __init__(self, n=0):
self.n = n
self.x1 = 0
self.x2 = 1
def next(self):
if self.n == 0:
raise StopIteration
else:
self.n = self.n -1
tmp = self.x1
self.x1, self.x2 = self.x2, self.x1 + self.x2
return tmp
def __iter__(self):
return self
結果是
>>> [i for i in fibo(15)]
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]
如何修改代碼,這樣,而不是遍歷前n個斐波那契數,連續調用遍歷接下來的n個數字,例如,?
>>> f=fibo(5)
>>> [i for i in f]
[0, 1, 1, 2, 3]
>>> [i for i in f]
[5, 8, 13, 21, 34]
>>> [i for i in f]
[55, 89, 144, 233, 377]
>>> [i for i in f]
[610, 987, 1597, 2584, 4181]
請修復你的縮進 – IanAuld