[Python-Dev] PEP 340: Else clause for block statements
aahz at pythoncraft.com
Sun May 1 15:43:34 CEST 2005
On Sun, May 01, 2005, Nick Coghlan wrote:
> Option 0:
> No else clause allowed. Figured I should mention this, since it is
> Guido's last reported inclination, and my total lack of use cases for the
> other options below suggests this is the best idea for an initial
> Option 1: mimic try, for, while semantics
> An 'else' clause on a block statement behaves like the else clause on
> for and while loops, and on try/except statements - the clause is executed
> only if the managed suite completes 'normally' (i.e. it is not terminated
> early due to an exception, a break statement or a return statement)
> Option 2: mimic if semantics
> An 'else' clause on a block statement behaves vaguely like the else
> clause on an if statement - the clause is executed only if the first suite
> is never entered, but no exception occurs (i.e. StopIteration is raised by
> the first call to next).
> Option 3: iterator-controlled semantics
> The iterator is given the ability to control whether or not the else
> clause is executed (e.g. via an attribute of StopIteration), probably using
> option 1 above as the default behaviour.
Did you deliberately sort the options this way? ;-) I'm mainly
responding to deliver my vote against option 3; I don't care much about
the other possibilities.
Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/
"It's 106 miles to Chicago. We have a full tank of gas, a half-pack of
cigarettes, it's dark, and we're wearing sunglasses." "Hit it."
More information about the Python-Dev