Iterator objects
As we mentioned earlier, a for
loop only needs an iterable object. Lists, in particular, are iterable. This means that a list is able to create an iterator from its contents. In fact, this is true for any object (not only lists): any object may be made iterable.
This is achieved via the __iter__
method, which should return an iterator. Here we give an example where the __iter__
method is a generator:
class OdeStore: """ Class to store results of ode computations """ def __init__(self, data): "data is a list of the form [[t0, u0], [t1, u1],...]" self.data = data def __iter__(self): "By default, we iterate on the values u0, u1,..." for t, u in self.data: ...