[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 ...)
>>or
>>(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
required.
Regards,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
http://boredomandlaziness.blogspot.com
More information about the Python-Dev
mailing list