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:             yield u store = ...

Get Scientific Computing with Python 3 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.