I also wish Python would take up the C ternary operator which is also quite clear and elegant.
:-)
You joke I assume? ':?' is clear? Its succinct but also prone to abuse. I don't think the Python equivalent
foo = x and y or z
is much less elegant than
foo = x ? y : z
You must be joking too... You think that
x and y or z
is as clear as
x ? y : z
even though the former is just a hack that was not meant to be used as such, while the latter is a well-documented feature that is designed to do what it does?
Ugly as I think it is, I could live with that. But it's worse:
x and y or z
doesn't even work if y evaluates to False. That alone makes me never want to use the construct: whether the expression evaluates to y or z should depend on the value of x, not the value of y or z.
As far as I'm concerned, the lack of a proper ternary if/then/else operator is a wart in the otherwise very clean design of Python. The lack of a switch statement too, but to a much lesser degree.
-- "Codito ergo sum" Roel Schroeven
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor