[Info] PEP 308 accepted - new conditional expressions
reinhold-birkenfeld-nospam at wolke7.net
Fri Sep 30 20:25:35 CEST 2005
Fredrik Lundh wrote:
> Reinhold Birkenfeld wrote:
>> after Guido's pronouncement yesterday, in one of the next versions of Python
>> there will be a conditional expression with the following syntax:
>> X if C else Y
>> which is the same as today's
>> (Y, X)[bool(C)]
> hopefully, only one of Y or X is actually evaluated ?
(cough) Yes, sorry, it's not the same. The same would be
(C and lambda:X or lambda:Y)()
if I'm not much mistaken.
>> C and X or Y (only if X is True)
> hopefully, "only if X is True" isn't in fact a limitation of "X if C else Y" ?
> /... snip comment that the natural order is C, X, Y and that programmers that
> care about readable code will probably want to be extremely careful with this
> new feature .../
Yes, that was my comment too, but I'll not demonize it before I have used it.
More information about the Python-list