else on the same line - howto

Helmut Jarausch jarausch-remove at igpm.rwth-aachen.de
Thu Oct 16 03:38:56 EDT 2003


Terry Reedy wrote:
> "Helmut Jarausch" <jarausch at remove.igpm.rwth-aachen.de> wrote in
> message news:bmj859$iph$1 at nets3.rz.RWTH-Aachen.DE...
> 
>>Since Python lacks conditional expression
>>like
>>
>>k+= (dy >= 0 ? 1 : -1)
> 
> 
> For this specific example:
> 
> k+= (dy >= 0 and 1 or -1)
> 
> But don't do this unless and until you 1) understand why this works
> and why the and branch must be non-null and what happens if it is null
> (this is discussed both in the FAQ and PEP 308) AND 2) accept
> responsibility for always remembering the caution.
Thanks to all who have replied. It's amazing how many different 
solutions are possible in Python.
Among all such a solution by a function is most readable (to me)
and I can well imagine such a function a builtin.
I have been teaching course in C++ to beginners and made the experience
that well chosen conditional expression are not obscure.
One can misuse any feature of a language to write obscure code.
Especially for the expression of a 'return' statement a conditional
expression might be a good idea.
So it's a pity that PEP 308 has been rejected since nobody is forced to
use such a construct if he/she doesn't like to.

Helmut.

---
Helmut Jarausch
RWTH-Aachen University
Germany







More information about the Python-list mailing list