Creating a Python iterator (Python 3 )

Creating a Python iterator

There’s no magic to creating your own iterator. I’ll demonstrate with a simple iterator class that returns even numbers.

As we’ve learned, we need to implement __iter__ and __next__. We’ll do this in one single class, to keep things simple. We accomplish this with an __iter__ method that simply returns self. We could make this an endless iterator. But for the sake of demonstration, we’ll raise a StopIteration exception as soon as we go past the number 8.

Remember that if you build an iterator this way, you can not use it in a concurrent environment. In such cases, you should return a new object on each call to iter.

To learn more, read the Python iterators tutorial at Python Land.

Edit and run this Python 3 example code

This code is editable and runnable. You can run "Creating a Python iterator" by pressing the run button. It will be executed in our backend and the result (stdout and stderr) is displayed in addition tabs.