.. _unidiomatic-typecheck:

unidiomatic-typecheck / C0123
=============================

**Message emitted:**

Use isinstance() rather than type() for a typecheck.

**Description:**

*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.*

**Problematic code:**

.. literalinclude:: /data/messages/u/unidiomatic-typecheck/bad.py
   :language: python

**Correct code:**

.. literalinclude:: /data/messages/u/unidiomatic-typecheck/good.py
   :language: python


**Related links:**

- `Builtin function type() <https://docs.python.org/3/library/functions.html#type>`_
- `Builtin function isinstance() <https://docs.python.org/3/library/functions.html#isinstance>`_

Created by the `basic <https://github.com/PyCQA/pylint/blob/main/pylint/checkers/base/comparison_checker.py>`__ checker.