PY3.C0123

Unidiomatic typecheck

Using type() instead of isinstance() for a typecheck. The idiomatic way to perform an explicit typecheck in Python is to use isinstance(x, y) rather than type(x) == Y, type(x) is Y. Though there are unusual situations where these give different results.

Noncompliant Code:

Copy
foo = [1, 2, 3]
if type(foo) is list:
    pass

Compliant Code:

Copy
foo = [1, 2, 3]
if isinstance(foo, list):
    pass

The content on this page is adapted from the Pylint User Guide, Copyright ©2003-2022, Logilab, PyCQA and contributors. All rights reserved. https://pylint.pycqa.org/en/latest/index.html#, and is used under the Python Software Foundation License Version 2. Examples, recipes, and other code in the Pylint documentation are additionally licensed under the Zero Clause BSD License.