[Tutor] Re: Are you allowed to shoot camels? [kinda OT]
Roel Schroeven
rschroev_nospam_ml at fastmail.fm
Fri Feb 4 12:14:43 CET 2005
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
More information about the Tutor
mailing list