Cool, I learned something today.  When I first saw this class I though it wouldn't work as an iterator because it had no __iter__ method, but it turns out that if you only have a __getitem__ method, python will create an iterator for you that calls __getitem__ starting at 0 and going up until it gets an IndexError.  Nice.  :)