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

Nick Coghlan ncoghlan at gmail.com
Wed Sep 21 13:14:57 CEST 2005

Greg Ewing wrote:
> Guido van Rossum wrote:
>>I think if we go with (if ... then ... else ...) or (if ...:
>>... else: ...) we'll have to support elif as well:
>>(if ... then ... elif ... then ... else ...)
>>(if ...: ... elif ...: ... else: ...)
> One nice thing about "x if b else y" is that it
> chains without needing any more keywords:
>    x if b else y if c else z
> But if you require parens, it's not so nice:
>    (x if b else (y if c else z))

If Guido chose this form, I would expect the chaining to work like chaining 
loops in a generator expression, with parentheses being required around the 
whole thing, rather than around each element in the chain:

     (x if b else y if c else z)

The point being that the result of the conditional expression is exactly one 
of the options included in the expression, so only one set of parentheses is 


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list