Hi List,
Lets say I want to know if the value of `x` is bool(True).
My preferred way to do it is:

if x is True:
    pass

Because this tests both the value and the type.

But this appears to be explicitly called out as being "Worse" in PEP8:

"""
Don't compare boolean values to True or False using ==.

Yes:   if greeting:
No:    if greeting == True:
Worse: if greeting is True:
"""

Why?

If `x` can also have a value of "1"(str) or 1(int) then in both cases this would be a false positive if I were to do the below as they'll both equate to True:

if x:
    pass

The PEP for boolean type (285 - https://www.python.org/dev/peps/pep-0285/) doesn't mention the "is" comparison keyword at all as far as I can tell.

What am I missing?
Thanks



--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to