Reinhold Birkenfeld wrote: > Nick Coghlan wrote: > >>Guido van Rossum wrote: >>[snip] >> >>>- I think there's a better word than Flow, but I'll keep using it >>> until we find something better. >> >>How about simply reusing Iteration (ala StopIteration)? >> >> Pass in 'ContinueIteration' for 'continue' >> Pass in 'BreakIteration' for 'break' >> Pass in 'AbortIteration' for 'return' and finalisation. >> >>And advise strongly *against* intercepting AbortIteration with anything other >>than a finally block. > > > Hmmm... another idea: If break and continue return keep exactly the current > semantics (break or continue the innermost for/while-loop), do we need > different exceptions at all? AFAICS AbortIteration (+1 on the name) would be > sufficient for all three interrupting statements, and this would prevent > misuse too, I think. No, the iterator should be able to keep state around in the case of BreakIteration and ContinueIteration, whereas AbortIteration should shut the whole thing down. In particular "VAR = yield None" is likely to become syntactic sugar for: try: yield None except ContinueIteration, exc: VAR = ContinueIteration.value We definitely don't want that construct swallowing AbortIteration. Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.skystorm.net
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