On Fri, Mar 5, 2010 at 2:54 PM, Steven D'Aprano <st...@remove-this-cybersource.com.au> wrote: > On Fri, 05 Mar 2010 15:01:23 -0400, Rolando Espinoza La Fuente wrote: > >> On Fri, Mar 5, 2010 at 2:32 PM, mk <mrk...@gmail.com> wrote: >>> Arnaud Delobelle wrote: >>> >>>>>>> 1 == True >>>> >>>> True >>>>>>> >>>>>>> 0 == False >>>> >>>> True >>>> >>>> So what's your question? >>> >>> Well nothing I'm just kind of bewildered: I'd expect smth like that in >>> Perl, but not in Python.. Although I can understand the rationale after >>> skimming PEP 285, I still don't like it very much. >>> >>> >> So, the pythonic way to check for True/False should be: >> >>>>> 1 is True >> False > > Why do you need to check for True/False? >
You should never check for "is" False/True but always check for equality. The reason is that many types support the equality (__eq__) and boolen (__bool__ in 3x) protocols. If you check equality these will be invoked, if you check identity ("is") they won't. -Jack -- http://mail.python.org/mailman/listinfo/python-list