Open In App
Related Articles

Python isinstance() method

Improve Article
Save Article
Like Article

Python isinstance() function returns True if the object is of specified types, and if it does not match then returns False. In this article we will see how isinstance() method works in Python


Input: isinstance([1, 2, 3], list)
Output: True
Explanation: The first parameter passed is of list type.

Input: isinstance(10, str)
Output: False
Explanation: The first parameter, 10 is an integer and not a string.

Syntax of Python isinstance() Method

The isinstance() method in Python has the following syntax:


isinstance(obj, class)

Parameters : 

  • obj : The object that need to be checked as a part of class or not.
  • class : class/type/tuple of class or type, against which object is needed to be checked.

Returns : True, if object belongs to the given class/type if single class is passed or any of the class/type if tuple of class/type is passed, else returns False.

TypeError: if anything other than mentioned valid class type. 

How isinstance() works in Python?

In Python, the instance() method works like a comparison operator. It takes two arguments, one is a Python object and the other is a class type. It compares the object with a specified type of class or a subclass and returns a boolean value, that is either True or False.

We can provide a single class type or a Python tuple of classes to the instance() method. In the case of a tuple, the instance() method checks for all the elements in the tuple and returns True if the object is an instance of any one of the elements of the tuple, else it returns False.

Examples of isinstance() Method in Python

Let us see a few examples of the Python instance() method.

Python isinstance with Int and List

In this example, we will see how the isinstance() method work with an Integer datatype and with Python List. We check if the integer and the list are an instance of an Integer or of String type.


# initializing native types
test_int = 5
test_list = [1, 2, 3]
# testing with isinstance
print("Is test_int integer? : " + str(isinstance(test_int, int)))
print("Is test_int string? : " + str(isinstance(test_int, str)))
print("Is test_list integer? : " + str(isinstance(test_list, int)))
print("Is test_list list? : " + str(isinstance(test_list, list)))
# testing with tuple
print("Is test_int integer or list or string? : "
      + str(isinstance(test_int, (int, list, str))))


Is test_int integer? : True
Is test_int string? : False
Is test_list integer? : False
Is test_list list? : True
Is test_int integer or list or string? : True

Demonstrating the use of isinstance() with Objects 

In this example, we will check if an object is an instance of a class or its derived class.


# Python 3 code to demonstrate
# working of isinstance()
# with objects
# declaring classes
class gfg1:
    a = 10
# inherited class
class gfg2(gfg1):
    string = 'GeeksforGeeks'
# initializing objects
obj1 = gfg1()
obj2 = gfg2()
# checking instances
print("Is obj1 instance of gfg1? : " + str(isinstance(obj1, gfg1)))
print("Is obj2 instance of gfg2? : " + str(isinstance(obj2, gfg2)))
print("Is obj1 instance of gfg2? : " + str(isinstance(obj1, gfg2)))
# check inheritance case
# return true
print("Is obj2 instance of gfg1? : " + str(isinstance(obj2, gfg1)))


Is obj1 instance of gfg1? : True
Is obj2 instance of gfg2? : True
Is obj1 instance of gfg2? : False
Is obj2 instance of gfg1? : True

Python isinstance() with  String

In this example, we will use the isinstance() function with a Python String.


test_str = "GeeksforGeeks"
print ("Is test_str string? : " + str(isinstance(test_str, str)))


Is test_str string? : True

Python isinstance() with Dictionary

Python isinstance() method also works with a dictionary object.


test_dict = {"apple" : 1, "Ball" : 2 }
print ("Is test_str dictionary? : " + str(isinstance(test_dict, dict)))


Is test_str dictionary? : True

Python isinstance with Class Methods 

In this example, we use the isinstance() method to check the value returned by a class function with a specified type.


class geeks:
    course = 'DSA'
    def purchase(obj):
        return obj.course
geeks.purchase = classmethod(geeks.purchase)
str(isinstance(geeks.purchase(), str ))



Difference between isinstance() and type() Methods in Python

The following table demonstrates the differences between the isinstance() method and the type() method in Python.



Syntax: isinstance(object, class)Syntax: type(object)

It checks if an object is of a specific class type

It returns the class type of an object

It can check if the object belongs to a class and its subclasses

It cannot deal with inheritance

It is faster as compared to type()It is slower than isinstance()
It returns either True or FalseIt returns the type of the object
It can check for multiple classes at a timeIt cannot do this
Example: isinstance(10, (int, str))Example: type(10)

Last Updated : 31 Jul, 2023
Like Article
Save Article
Similar Reads
Related Tutorials