type-comparison (E721)
Added in v0.0.39 · Related issues · View source
Derived from the pycodestyle linter.
What it does
Checks for object type comparisons using == and other comparison
operators.
Why is this bad?
Unlike a direct type comparison, isinstance will also check if an object
is an instance of a class or a subclass thereof.
If you want to check for an exact type match, use is or is not.
Known problems
When using libraries that override the == (__eq__) operator (such as NumPy,
Pandas, and SQLAlchemy), this rule may produce false positives, as converting
from == to is or is not will change the behavior of the code.
For example, the following operations are not equivalent:
import numpy as np
np.array([True, False]) == False
# array([False, True])
np.array([True, False]) is False
# False
Example
Use instead: