Unbound iterator Fibonacci
Now we can get back to our original problem, the slightly more complex Fibonacci series. In this example we created
an unbounded iterator that on every iteration will return the next element of the Fibonacci series.
examples/iterators/unbound/fibonacci.py
class Fibonacci(): def __init__(self): self.values = [] def __iter__(self): return self def __next__(self): if len(self.values) == 0: self.values.append(1) return 1 if len(self.values) == 1: self.values.append(1) return 1 self.values.append(self.values[-1] + self.values[-2]) self.values.pop(0) return self.values[-1]
examples/iterators/unbound/fib.py
from fibonacci import Fibonacci for v in Fibonacci(): print(v) if v > 10: break
1 1 2 3 5 8 13