[Python-Dev] vox populii illiterati
Tim Peters
tim.one@comcast.net
Sun, 09 Feb 2003 12:15:44 -0500
[Neal Norwitz]
> ...
> One thing to note, many people are saying you can currently do:
>
> cond and true_value or false_value
>
> However, many have gotten it wrong, either by reversing the true/false
> value or by using something in the true_value which may be false
> (sometimes even constants). pychecker tries to find this condition
> (when true_value is a false constant), but it does a poor job
> of determining the idiom IIRC.
Indeed, that's been the most amazing part of the discussion to me. Not so
much the form above: everyone gets that wrong in the case true_value may
actually be false, but I don't agree they're prone to swap the values. But
*virtually* everyone got the order wrong when rewriting examples with the
weaker
(false_value, true_value)[cond]
variant (they swap the values in the tuple). That's evidence that the
expression-like workarounds don't really work for real people.
The other really interesting stuff has been Andre Dalke digging into mounds
of C++ code, and finding bad (or at best dubious) uses of ?:. I believe his
claim that if Python grows a conditional expression, lots of people coming
from C will use it out of habit instead of learning that min(), max() and
abs() are built in. That's evidence that people are people <wink>.