-
Book Overview & Buying
-
Table Of Contents
Learning Python
By :
Now we have all the tools to appreciate how we can write our own custom iterator. Let's first define what is an iterable and an iterator:
Iterable: An object is said to be iterable if it's capable of returning its members one at a time. Lists, tuples, strings, dicts, are all iterables. Custom objects that define either of __iter__ or __getitem__ methods are also iterables.
Iterator: An object is said to be an iterator if it represents a stream of data. A custom iterator is required to provide an implementation for __iter__ that returns the object itself, and an implementation for __next__, which returns the next item of the data stream until the stream is exhausted, at which point all successive calls to __next__ simply raise the StopIteration exception. Built-in functions such as iter and next are mapped to call __iter__ and __next__ on an object, behind the scenes.
Let's write an iterator that returns all the odd characters from a string first, and then the even...