isinstance() Type check
Last updated: 2026-09-22
isinstance() Type check
isinstance(obj, classinfo) checks whether obj is an instance of classinfo (or subclass); classinfo may be a tuple.
| Category | Built-in Functions |
|---|---|
| Kind | Built-in Function |
| Python Version | all |
📝 Syntax
isinstance(object, classinfo)
⚙️ Parameters
| object Required | The object to check. |
|---|---|
| classinfo Required | A type, or a tuple of types (union check). |
Returns:True if object is an instance of classinfo (or any type in it).
💥 Raises
TypeError— Raised when classinfo is not a type or a tuple of types.
▶ Example
Edit the code, press Run, and see the result in the output panel:
Output:
True
True
False
🏷️ Related Built-in Functions
💡 Related Cases
More case studies coming soon — check back later.
❓ FAQ
QWhat is the difference between isinstance(x, int) and type(x) == int?
Aisinstance accounts for inheritance (a subclass instance also returns True); type(x) == int requires the exact type. Usually isinstance is the more flexible choice.
QWhat does isinstance(True, int) return?
AIt returns True because bool is a subclass of int. To distinguish booleans from integers, additionally check type(x) is bool.
QCan the second argument hold multiple types?
AYes, pass a tuple: isinstance(x, (int, float)) returns True if either matches. Passing a non-type (or non-tuple-of-types) as classinfo raises a TypeError.
QCan isinstance check interfaces or abstract types?
AYes, it works with abstract base classes, e.g. isinstance(x, Iterable) or isinstance(x, collections.abc.Sequence), which is more robust than checking concrete types.