[Info] PEP 308 accepted - new conditional expressions

Reinhold Birkenfeld 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.

Reinhold



More information about the Python-list mailing list