Python isinstance() Function – Check Type of a Variable

Python isinstance() Function

The isinstance() function in Python checks whether a variable is an instance of a specific class or a tuple of classes. It's a safe and recommended way to validate data types.

Syntax

isinstance(object, classinfo)

Parameters:

  • object – The value or variable to test.
  • classinfo – A class, type, or a tuple of classes and types.

Returns:

  • True if object is an instance (or subclass instance) of classinfo.
  • False otherwise.

Example 1: Check if a variable is an integer

x = 5
print(isinstance(x, int))
True

Example 2: Check if a string is a list (it isn’t)

name = "Alice"
print(isinstance(name, list))
False

Example 3: Check against multiple types

value = 3.14
print(isinstance(value, (int, float)))
True

Here, value is checked against both int and float. The function returns True if it matches any one.

Use Case: Why Use isinstance()?

  • To validate function arguments
  • To avoid type errors in logic
  • To write type-safe code, especially in large projects
  • To apply different logic based on variable type (e.g., float vs int)

Example 4: Type checking in a function

def square(x):
    if isinstance(x, (int, float)):
        return x * x
    else:
        return "Invalid input"

print(square(4))      # 16
print(square("four")) # Invalid input
16
Invalid input

Common Mistakes

  • Passing a string for classinfo like "int" (should be int without quotes)
  • Confusing type() with isinstance(): isinstance() supports inheritance, type() does not

Interview Tip

isinstance() is often used in questions involving type safety or when a function needs to behave differently based on data types. It’s also commonly used in object-oriented questions.

Summary

  • isinstance(obj, type) returns True if obj is of the given type or its subclass.
  • Use a tuple to check against multiple types.
  • Safer than using type() when inheritance is involved.

Practice Problem

Write a function that accepts a value and returns:

  • "Integer" if it’s an integer
  • "Float" if it’s a float
  • "Other" otherwise
def identify_type(x):
    if isinstance(x, int):
        return "Integer"
    elif isinstance(x, float):
        return "Float"
    else:
        return "Other"

print(identify_type(42))
print(identify_type(3.14))
print(identify_type("hello"))
Integer
Float
Other
Mallikarjuna Mallisetty, author
About the author

Mallikarjuna Mallisetty

General programming

Mallikarjuna shares practical programming tutorials and foundational concepts designed to help developers learn by building and experimenting.

View LinkedIn profile ↗