[Python-ideas] True and False are singletons

Steven D'Aprano steve at pearwood.info
Mon Mar 18 18:54:26 EDT 2019


On Tue, Mar 19, 2019 at 11:32:56AM +1300, Greg Ewing wrote:
> Tim Delaney wrote:
> >I would argue the opposite - the use of "is" shows a clear knowledge 
> >that True and False are each a singleton and the author explicitly 
> >intended to use them that way.
> 
> I don't think you can infer that. It could equally well be someone who's
> *not* familiar with Python truth rules and really just meant "if x".
> Or someone who's unfamiliar with booleans in general and thinks that
> every "if" statement has to have a comparison in it.

This!

Writing "if some_bool = true" in static typed languages is pretty 
common. I used to see it a lot in my Pascal days. In fairness that was 
because I used to write some of it myself :-(

For some reason it rarely seems to happen when the flag being tested is 
itself a boolean expression:

    if x > 0:  # this
    if (x > 0) is True:  # but never this

which gives credence to your idea that people expect that people are 
(consciously or unconsciously) expecting every if to include a 
comparison.


-- 
Steven


More information about the Python-ideas mailing list