Alan Gauld wrote:
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

Reply via email to