PEP-308 a "simplicity-first" alternative
pyth at devel.trillke.net
Tue Feb 11 20:32:25 CET 2003
I am still wondering if there is a simple way to fix the current
ternary op "x and y or z". Everybody knows by now that
this "fails" if y is a false value. Otherwise
it works ok and is used in today's code everywhere.
Inspired by "do the simplest thing that can possibly work"
i now think that
x and y else z
might just do it and avoid the need for a new construct.
It's a very minor change just for fixing the problem at hand.
It should be obvious what it does.
if 'x' is true then 'y' is the result. Else 'y' is the
result. So it doesn't matter if 'y' has a false value.
Yes, it looks unusal but it is a simple "non-destructive"
change which the people who now dislike PEP308 could
probably live with.
It has the positive side effect that explaining this
ternary op variation goes hand in hand with explaining
how and/or works in python. And it acknowledges the
fact that we "almost" have a ternary op. Also it reads
left to right and the alternatives "y else z"
More information about the Python-list