On Tue, 19 Mar 2019 at 08:42, Greg Ewing <greg.ewing@canterbury.ac.nz> wrote:
Oleg Broytman wrote:
>    Three-way (tri state) checkbox. You have to distinguish False and
> None if the possible valuse are None, False and True.

In that case the conventional way to write it would be

     if settings[MY_KEY] == True:
         ...

It's not a major issue, but I get nervous when I see code
that assumes True and False are unique, because things
weren't always that way.

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. Use of == in the same context is more likely to indicate a programmer who is unfamiliar with Python's truth rules.

Tim Delaney