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

Michael Hudson mwh at python.net
Wed Sep 21 12:10:37 CEST 2005


Guido van Rossum <guido at python.org> writes:

>> Given the later addition of generator expressions with mandatory
>> parentheses , the mandatory-parentheses version of a conditional expression
>> looks less strange to me than it did then ;-).  So I could happily use it
>> even though I may still lean toward the other option 2 version (then-else)
>> due to  its not needing ':'s or a third elseif term for chaining.
>
> I think I'd prefer (if <expr> then <expr> else <expre>) i.e. no
> colons. 

My problem with this syntax is that it can be hard to read:

return if self.arg is None then default else self.arg

looks worryingly like

return NAME NAME.NAME NAME NAME NAME NAME NAME NAME.NAME

to me.

> None of the other expression forms (list comprehensions and
> generator expressions) involving statement keywords use colons.

This is also true.

>> *If* you want general community input, I would suggest a runoff ballot with
>> those four choices (and a summary of pros and cons of each), or fewer if
>> you see any as unacceptible.
>
> If there's one thing I've learned from the PEP 308 vote, it is that
> votes for language don't work. I prefer some discussion on Python-dev
> after which I pick one.

Well, this is my input (and now I'm going to try and stay out of it).

Cheers,
mwh

-- 
59. In English every word can be verbed. Would that it were so in
    our programming languages.
  -- Alan Perlis, http://www.cs.yale.edu/homes/perlis-alan/quotes.html


More information about the Python-Dev mailing list