Alex Martelli wrote: > class Outer: > [snip snip] > def __iter__(self): > class Inner: > def __init__(self, outer): > self.outer = outer > def __iter__(self): > return self > def next(self): > if self.outer.isAtEnd(): > raise StopIteration > else: > result = self.outer.currentState() > self.outer.advanceState() > return result > return Inner(self) While I'm sure this was just a theoretical example, _this_ specific case is much easier written as a generator (and I _love_ the idiom of making the __iter__ method a generator, I think it's underused...). class Outer: [snip snip] def __iter__(self): while not self.isAtEnd(): result = self.outer.currentState() self.outer.advanceState() yield result Just
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4