[Python-ideas] True and False are singletons

Eric Fahlgren ericfahlgren at gmail.com
Mon Mar 18 11:10:03 EDT 2019


On Mon, Mar 18, 2019 at 7:04 AM Rhodri James <rhodri at kynesim.co.uk> wrote:

> On 18/03/2019 12:19, Richard Damon wrote:
> > On 3/18/19 7:27 AM, Greg Ewing wrote:
> >> Juancarlo Añez wrote:
> >>
> >>>     if settings[MY_KEY] is True:
> >>>         ...
> >>
> >> If I saw code like this, it would take a really good argument to
> >> convince me that it shouldn't be just
> >>
> >>      if settings[MY_KEY]:
> >>          ...
> >>
> > That means something VERY different. The first asks if the item is
> > specifically the True value, while the second just asks if the value is
> > Truthy, it wold be satisfied also for values like 1.
>
> Yes.  And the latter is what people almost always mean.
>

No, it depends heavily on the context.  In GUI code, Oleg's example
(tri-state checkbox) is a pervasive idiom.  There's lots of code that says
"if x is True" or "if x is False" or "if x is None" and that's a very clear
indicator that you are dealing with these "booleans that can also be
'unset'".
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20190318/effc31c8/attachment.html>


More information about the Python-ideas mailing list