[Python-Dev] Adding a conditional expression in Py3.0

Michael Chermside mcherm at mcherm.com
Thu Sep 29 22:31:46 CEST 2005


[ongoing discussion of conditional expressions]
I waited until I had caught up on my reading before saying anything. Now I'll
express my opinion in a single posting then keep quiet unless I actually find I
have something novel to contribute (difficult in a topic that's been talked to
death 3 or 4 times in the past few years).
 * I am STRONGLY in favor of introducing a conditional expression in some
 form. The use of the "and-or" trick is proof enough to me that there is
 a need for it. I can marshall other arguments also, but they appear
 unnecessary.
 * The syntax to use is a place where we need a BDFL decision. Make the
 decision and we'll all agree and move on. Any decision would be better
 than an eternity of re-discovering old ideas again and again.
 * I think the two best options are
 trueval if cond else falseval
 and
 if cond then trueval else falseval
 The first has brevity in it's favor, and "cleverness" which might be
 an advantage or disadvantage depending on your point of view. The
 second has order-of-arguments in its favor. In either case, wise
 programmers will use parenthesees when it aids clarity (imagine
 "v1 if c else v2 + v3"). Whether we require parenthesees when the
 parser could disambiguate on its own is really up to Guido.
 * I prefer the second form ("if cond then trueval else falseval")
 because it puzzles _nobody_ at the expense of being slightly
 more wordy and less clever. But that's just one person's opinion.
Thanks Guido, for maintaining your patience in the face of this
discussion.
-- Michael Chermside


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /