PEP 308: Erik's alternatives list

Gerald S. Williams gsw at
Wed Feb 19 17:15:48 CET 2003

"Erik Max Francis" <max at> wrote:
> I.  Proposals mentioned in the PEP at some point
[ ...]
> 3.  if C: x else: y

I'm starting to really like this one. Basically it's
just interpreting the if/else statement slightly
differently when used in an expression context,
returning the value of the alternative. It gets
its short-circuiting from the normal semantics
of the if statement. Short-circuited expressions
follow ":", just like short-cirtuited statements

Think of it this way: "if" is the embodiment of
two-option short-circuiting.

This would generalize nicely to switch/case if
that construct ever makes it into Python.



I still think the current FAQ should show an
alternative that is readable and doesn't need
disclaimers. The following works for me:

 def ifelse(x): return x[0]
 ... ifelse(c and [a] or [b])

More information about the Python-list mailing list