[Python-Dev] metaclass insanity

Just van Rossum just@letterror.com
Tue, 5 Nov 2002 09:48:03 +0100


Just van Rossum wrote:

> class Outer:
>     [snip snip]
>     def __iter__(self):
>         while not self.isAtEnd():
>             result = self.outer.currentState()
>             self.outer.advanceState()
>             yield result

PS, getting more off-topic, I'm somewhat surprised that the above is more
compact and readable than the obvious generator-less equivalent:

class Outer:
    [snip snip]
    def __iter__(self):
        return self
    def next(self):
        if self.isAtEnd():
            raise StopIteration
        else:
            result = self.outer.currentState()
            self.outer.advanceState()
            return result

Just