[Python-ideas] Programming recommendations (PEP 8) and boolean values

Stephen J. Turnbull stephen at xemacs.org
Thu Aug 9 10:29:53 CEST 2012


Yuval Greenfield writes:

 > In python 3.2.3:
 > 
 >     >>> 1 == True
 >     True
 > *    >>> 13 == True*
 > *    False*
 >     >>> bool(1)
 >     True
 >     >>> bool(13)
 >     True
 >     >>> 1 is True
 >     False
 >     >>> 13 is True
 >     False
 > 
 > To my surprise identity is actually less confusing than equality. So I
 > agree with Antoine and Michael on that point.

FWIW, I don't find any of the above confusing.  "1 == True" => True is
unexpected in some sense, but I don't find it counter-intuitive, and I
find the "don't break old code" rationale satisfactory.

Inada-san's example of addition is a little disconcerting in that
particular spelling.  But

    sum(predicate(x) for x in seq)

seems preferable to a boolean-specific count function, and it
generalizes nicely to the creation of dummy variables in statistical
applications.

Steve



More information about the Python-ideas mailing list