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   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---------------------------------------------------------------
            http://boredomandlaziness.skystorm.net
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to