A Fibonacci Iterator
We'll cover the following...
We'll cover the following...
Now you’re ready to learn how to build an iterator. An iterator is just a class that defines an __iter__() method.
① To build an iterator from scratch, Fib needs to be a class, not a function.
② “Calling” Fib(max) is really creating an instance of this class and calling its __init__() method with max. The __init__() method saves the maximum value as an instance variable so other methods can refer to it later.
③ The __iter__() method is called whenever someone calls iter(fib). (As you’ll see in a minute, a for loop will call this automatically, but you can also call it yourself manually.) After performing beginning-of-iteration initialization (in this case, resetting self.a and self.b, our two counters), the ...