Sam Pointon a écrit : > Bruno Desthuilliers wrote: > >>foo = lambda thing: thing and thing + 1 or -1 > > > The and ... or trick is buggy (what if thing == -1?)
Yes, true - Should be: foo2 = lambda t: t != -1 and (t and t+1 or -1) or 0 > and bad style. Lol. Well, so what about: foo = lambda t: (lambda t: -1, lambda t: t+1)[bool(t)](t) ?-) (NB: don't bother answering) > If > you -do- want a conditional expression, 2.5 provides one: Yes, at last, and I'm glad it finally made it into the language. But 2.5 is not here yet. The 'and/or' trick can be, well, tricky, (notably in this case) but it at least work with most Python versions. > No subtle logical bugs, and a good deal more obvious. Indeed. -- http://mail.python.org/mailman/listinfo/python-list