Steven Bethard a écrit : > A.M wrote: > > Do we have the conditional expressions in Python 2.4? > > bruno at modulix wrote: > (snip) > >> In the meanwhile, there are (sometime trickyà ways to get the same >> result: >> >> a = 1 == 1 and "Yes" or "No" >> a = ("No", "Yes")[1 == 1] > > And just to give some examples where the conditional expression will > show a difference:: > > >>> True and 0 or [] > []
Yes, this is one of the tricky part !-) <op> Always make sure the second term doesn't eval to False. </op> > > >>> def f(): > ... print "don't evaluate me" > ... return 'f' > ... > >>> def g(): > ... return 'g' > ... > >>> (f(), g())[True] Why on earth are you calling the callables *before* testing ? Should be: (f, g)[True]() of course. -- http://mail.python.org/mailman/listinfo/python-list