PYnative

Python Programming

  • Learn Python
    • Python Tutorials
    • Python Basics
    • Python Interview Q&As
  • Exercises
    • Python Exercises
    • C Programming Exercises
    • C++ Exercises
  • Quizzes
  • Code Editor
    • Online Python Code Editor
    • Online C Compiler
    • Online C++ Compiler
Home » Python » Python isinstance() function explained with examples

Python isinstance() function explained with examples

Updated on: June 29, 2021 | 11 Comments

The Python’s isinstance() function checks whether the object or variable is an instance of the specified class type or data type.

For example, isinstance(name, str) checks if name is an instance of a class str.

Also, Solve: Python Basic Exercise and Beginners Quiz

Table of contents

  • How To Use isinstance() Function in Python
    • Example
  • isinstance() With Built-In Types
  • isinstance() With Multiple Classes
  • isinstance() With Python Class
  • isinstance() function With Inheritance
  • isinstance with Python list
    • Checking if an object is an instance of a list type
    • Check if an element of a list is a nested list
    • Check if elements of a list are numbers or strings
  • Next steps

How To Use isinstance() Function in Python

Let’s see the syntax first before moving to the example.

Syntax:

isinstance(object, classinfo)Code language: Python (python)
  • It takes two arguments, and both are mandatory.
  • The isinstance() function checks if the object argument is an instance or subclass of classinfo class argument
Python isinstance()
Python isinstance()

Using isinstance() function, we can test whether an object/variable is an instance of the specified type or class such as int or list. In the case of inheritance, we can checks if the specified class is the parent class of an object.

  1. Pass object to isinstance()

    Pass the variable you want to check as object argument to the isinstance(). Here the object can be any class object or any variable name

  2. Specify the Class or Type name as a classinfo argument

    For example, isinstance(x, int) to check if x is an instance of a class int.
    classinfo is a type name or Class name you want to check against the variable. Here you can specify data type name or Class name.
    You can also pass multiple classes/types in a tuple format. For example, you can pass int, str, list, dict, or any user-created class.

  3. Execute your operation, If result is True

    The isinstance() returns True if an object or variable is of a specified type otherwise False.

Example

Using isintance() we can verify whether a variable is a number or string. Let’s assume variable num = 90, and you want to check whether num is an instance of an int type.

num = 90
result = isinstance(num, int)
if result:
    print("Yes")
else:
    print("No")Code language: Python (python)

Output:

Yes

As we can see in the output, the isinstance() returned True because num hold an integer value.

Note: If the classinfo argument is not a Class, type, or tuple of types, a TypeError exception is raised.

isinstance() With Built-In Types

As you know, Every value (variable) in Python has a type. In Python, we can use different built-in types such as int, float, list, tuple, strings, dictionary. Most of the time, you want to check the type of value to do some operations. In this case, isinstance() function is useful.

# Check if 80 is an instance of class int
number = 80
print(isinstance(number, int))
# output True

print(isinstance(number, float))
# output False

pi = 3.14
# Check 3.14 is an instance of class float
print(isinstance(pi, float))
# Output True

# Check if (1 + 2j) is an instance of complex
complex_num = 1 + 2j
print(isinstance(complex_num, complex))
# Output True

# Check if 'PYnative' is an instance of class string
name = "PYnative.com"
print(isinstance(name, str))
# Output True

# Check if names is an instance of class list
names = ["Eric", "Scott", "Kelly"]
print(isinstance(names, list))
# Output True

# Check if student_report is an instance of class dict
student_report = {"John": 80, "Eric": 70, "Donald": 90}
print(isinstance(student_report, dict))
# Output True

# Check if names is an instance of class tuple
names = ("Sam", "Kelly", 'Emma')
print(isinstance(names, tuple))
# Output True

# Check if numbers is an instance of class tuple
numbers = {11, 22, 33, 44, 55}
print(isinstance(numbers, set))
# Output TrueCode language: Python (python)

Note: If we use the isinstance() with any variable or object with a None, it returns False. Let see the simple example of it.

var = None
# empty but not None
s1 = ''
print(isinstance(var, float))
# Output False
print(isinstance(s1, str))
# Output TrueCode language: Python (python)

isinstance() With Multiple Classes

You can also check the instance with multiple types. Let’s say you have a variable, and you wanted to check whether it holds any numeric value or not, for example, a numeric value can be an int or float.

To verify whether a variable is an instance of one of the specified types, we need to mention all types in a tuple and pass it to the classInfo argument of isinstance().

Example

def check_number(var):
    if isinstance(var, (int, float)):
        print('variable', var, 'is instance of numeric type')
    else:
        print('variable', var, 'is not instance of numeric type')

num1 = 80
check_number(num1)
# Output variable 80 is instance of numeric type

num2 = 55.70
check_number(num2)
# Output variable 55.7 is instance of numeric type

num3 = '20'
check_number(num3)
# Output variable '20' is not instance of numeric type
Code language: Python (python)

isinstance() With Python Class

The isinstance() works as a comparison operator, and it compares the object with the specified class type.

You can verify if the emp object is an instance of a user-defined class Employee using the isinstance() function. It must return True.

class Employee:

    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

class Person:

    def __init__(self, name, sex):
        self.name = name
        self.sex = sex

emp = Employee("Emma", 11000)
per = Person("Brent", "male")

# Checking if a emp object is an instance of Employee
print(isinstance(emp, Employee))
# Output True

# Checking if the per object is an instance of Employee
print(isinstance(per, Employee))
# Output FalseCode language: Python (python)

isinstance() function With Inheritance

The object of the subclass type is also a type of parent class. For example, If Car is a subclass of a Vehicle, then the object of Car can be referred to by either Car or Vehicle. In this case, the isinstance(carObject, Vehicle) will return True.

The isinstance() function works on the principle of the is-a relationship. The concept of an is-a relationship is based on class inheritance.

The instance() returns True if the classinfo argument of the instance() is the object’s class’s parent class.

To demonstrate this, I have created two classes, Developer and PythonDeveoper. Here PythonDeveoper is a sub-class of a Developer class.

class Developer(object):

    # Constructor
    def __init__(self, name):
        self.name = name

    def display(self):
        print("Developer:", self.name, "-")

class PythonDeveloper(Developer):

    # Constructor
    def __init__(self, name, language):
        self.name = name
        self.language = language

    def display(self):
        print("Python Developer:", self.name, "language:", self.language, "-")

# Object of PythonDeveloper
dev = PythonDeveloper("Eric", "Python")
# is PythonDeveloper object an instance of a PythonDeveloper Class
print(isinstance(dev, PythonDeveloper))
# Output True

# is python_dev object an instance of a Developer Class
print(isinstance(dev, Developer))
# Output TrueCode language: Python (python)

Note: The isinstance() function is beneficial for casting objects at runtime because once you get to know the given class is a subclass of a parent class, you can do casting appropriately if required.

isinstance with Python list

As you know, a Python list is used to store multiple values at the same time. These values can be of any data type like numbers, strings, or any Class objects.

In this section, we will test the following operations with the Python list using the isinstance() function:

  • Checking if an object is of type list in python.
  • Check if an element of a list is a list.
  • Verify if elements of a list are numbers or strings.
  • Python check if all elements of a list are the same type

Checking if an object is an instance of a list type

sample_list = ["Emma", "Stevan", "Brent"]
res = isinstance(sample_list, list)
print(sample_list, 'is instance of list?', res)

# Output 'Emma', 'Stevan', 'Brent'] is instance of list? TrueCode language: Python (python)

Check if an element of a list is a nested list

To check if one of the elements in the list is itself a list. For example, you have the following list, Use the isinstance() to verify if the list contains a nested list

sampleList = ['Emma', 'Stevan', ['Jordan', 'Donald', 'Sam']]Code language: Python (python)

Iterate a list and verify each element’s class, and if it a list type, we can say that the list contains a nested list.

sample_list = ['Emma', 'Stevan', ['Jordan', 'Donald', 'Sam']]
for item in sample_list:
    if isinstance(item, list):
        print("Yes", item, 'is a nested list')

# Output Yes ['Jordan', 'Donald', 'Sam'] is a nested listCode language: Python (python)

Check if elements of a list are numbers or strings

Check each element’s type with multiple numeric types such as int, float, and complex using the isinstance() function.

To find all string variables, Check each element’s type with str type.

sample_list = ['Emma', 'Stevan', 12, 45.6, 1 + 2j, "Eric", ]
number_list = []
string_list = []
for item in sample_list:
    if isinstance(item, (int, float, complex)):
        number_list.append(item)
    elif isinstance(item, str):
        string_list.append(item)

# String List
print(string_list)
# Output ['Emma', 'Stevan', 'Eric']

# Number list
print(number_list)
# Output [12, 45.6, (1+2j)]Code language: Python (python)

Next steps

Let me know your comments and feedback in the section below.

Solve:

  • Python exercise for beginners
  • Python Quiz for beginners

Filed Under: Python, Python Basics

Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.

TweetF  sharein  shareP  Pin

About Vishal

I’m Vishal Hule, the Founder of PYnative.com. As a Python developer, I enjoy assisting students, developers, and learners. Follow me on Twitter.

Related Tutorial Topics:

Python Python Basics

All Coding Exercises:

C Exercises
C++ Exercises
Python Exercises

Python Exercises and Quizzes

Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.

  • 15+ Topic-specific Exercises and Quizzes
  • Each Exercise contains 25+ questions
  • Each Quiz contains 25 MCQ
Exercises
Quizzes

Comments

  1. ZAINAB says

    January 15, 2022 at 7:46 pm

    ‘you are just fabulous bro, appreciating your work is a right of mine,

    Reply
  2. Gowsia Zargar says

    January 3, 2021 at 6:14 pm

    Your articles are very helpful in understanding python concepts are they are written in a simpler form which makes coding fun.

    Reply
    • Vishal says

      January 7, 2021 at 10:07 am

      Thank you, Gowsia.

      Reply
  3. Spoorthi says

    October 13, 2020 at 5:15 am

    I’m a beginner and I dont have any programming knowlde but I love to learn Python!. Simple and crystal clear!,. Appreciate it!.

    Reply
    • Vishal says

      October 16, 2020 at 4:45 pm

      Thank you, Spoorthi

      Reply
  4. Alberta says

    July 17, 2020 at 12:15 am

    This is great! Self-explanatory. Good work!

    Reply
    • Vishal says

      July 20, 2020 at 1:16 pm

      Thank you, Alberta.

      Reply
  5. peter says

    June 14, 2020 at 9:15 pm

    simply understood. thank you so much

    Reply
  6. deborgher says

    May 25, 2020 at 9:07 pm

    I am learning Python and explore any document or help, as I am very curious.
    Thanks Vishal for this excellent and very interesting article

    Reply
  7. Handy says

    May 24, 2020 at 9:23 pm

    Great articles!! I got a lot insights through your articles. Your contents are clear easy and relevant; with concrete and simple examples. I grab a lot on the use of isinstance() function in python. Thanks for sharing!

    Reply
    • Vishal says

      May 25, 2020 at 4:01 pm

      You are welcome, Handy

      Reply

Leave a Reply Cancel reply

your email address will NOT be published. all comments are moderated according to our comment policy.

Use <pre> tag for posting code. E.g. <pre> Your entire code </pre>

In: Python Python Basics
TweetF  sharein  shareP  Pin

  Python Tutorials

  • Get Started with Python
  • Python Statements
  • Python Comments
  • Python Keywords
  • Python Variables
  • Python Operators
  • Python Data Types
  • Python Casting
  • Python Control Flow statements
  • Python For Loop
  • Python While Loop
  • Python Break and Continue
  • Python Nested Loops
  • Python Input and Output
  • Python range function
  • Check user input is String or Number
  • Accept List as a input from user
  • Python Numbers
  • Python Lists
  • Python Tuples
  • Python Sets
  • Python Dictionaries
  • Python Functions
  • Python Modules
  • Python isinstance()
  • Python OOP
  • Python Inheritance
  • Python Exceptions
  • Python Exercise for Beginners
  • Python Quiz for Beginners

 Explore Python

  • Python Tutorials
  • Python Exercises
  • Python Quizzes
  • Python Interview Q&A
  • Python Programs

All Python Topics

  • Python Basics
  • Python Exercises
  • Python Quizzes
  • Python File Handling
  • Python Date and Time
  • Python OOP
  • Python Random
  • Python Regex
  • Python Pandas
  • Python Databases
  • Python MySQL
  • Python PostgreSQL
  • Python SQLite
  • Python JSON

About PYnative

PYnative.com is for Python lovers. Here, You can get Tutorials, Exercises, and Quizzes to practice and improve your Python skills.

Follow Us

To get New Python Tutorials, Exercises, and Quizzes

  • Twitter
  • Facebook
  • Sitemap

Explore Python

  • Learn Python
  • Python Basics
  • Python Databases
  • Python Exercises
  • Python Quizzes
  • Online Python Code Editor
  • Python Tricks

Coding Exercises

  • C Exercises
  • C++ Exercises
  • Python Exercises

Legal Stuff

  • About Us
  • Contact Us

We use cookies to improve your experience. While using PYnative, you agree to have read and accepted our:

  • Terms Of Use
  • Privacy Policy
  • Cookie Policy

Copyright © 2018–2026 pynative.com