On Mon, Mar 18, 2019 at 7:04 AM Rhodri James
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'".