In Python, the isinstance() function is used to determine whether an object is an instance of a specified class or type.

Function Syntax

isinstance(object, classinfo)

Parameters:

  • object: The object to check.
  • classinfo: A class, type, or tuple of types.

Returns True if object is an instance of classinfo or an instance of its subclass, otherwise returns False.

isinstance() Function Examples

# Check if an integer is an instance of int type
num = 123
result = isinstance(num, int)
print(result)  # Output: True

# Check if a string is an instance of str type
str_value = "hello world"
result = isinstance(str_value, str)
print(result)  # Output: True

# Check if a list is an instance of list type
list_value = [1, 2, 3]
result = isinstance(list_value, list)
print(result)  # Output: True

Check against multiple types:

value = 123.456
print(isinstance(value, (int, float)))  # True
print(isinstance(value, (str, list)))   # False

data = ["a", "b"]
print(isinstance(data, (list, tuple)))  # True

Check class inheritance relationships:

class Animal:
    pass

class Dog(Animal):  # Dog inherits from Animal
    pass

class Cat(Animal):  # Cat inherits from Animal
    pass

dog = Dog()
print(isinstance(dog, Dog))       # True
print(isinstance(dog, Animal))    # True (parent class)
print(isinstance(dog, Cat))       # False

animal = Animal()
print(isinstance(animal, Dog))    # False (cannot check upward)

Difference from type():

class Animal:
    pass

class Dog(Animal):
    pass

dog = Dog()

# type() strict type checking
print(type(dog) == Dog)        # True
print(type(dog) == Animal)     # False (exact match)

# isinstance() considers inheritance
print(isinstance(dog, Dog))    # True
print(isinstance(dog, Animal)) # True (includes parent class)