Python checking object class

Various methods in Python to check type

In this short tutorial, we look at how to use Python to check type of objects. We take a look at all the various methods that can be used.

Table of Contents — Python Check Type:

TL;DR — How to check the type of an object in Python?

The type() function takes in an argument and returns the type of teh object. Apart from this method the isinstance() function can check if an argument is an instance of a particular class or type.

Python check type:

Unlike most programming languages Python does not require you to specify the data type of a particular object. Python assigns them during compilation. Experienced developers may not have a problem identifying data type, however, beginners might find this a little tricky.

Читайте также:  Javascript установить css свойство элемента

Python facilitates this with the help of two in-built functions. We have explained both these methods in detail below.

Using the type() function:

The type() is used to check the type of an object. This function exists for this exact purpose and is the most commonly used method.

The type() method takes in an argument (object) and returns the class type assigned to the particular object.

The Syntax of type() is as follows:

Code to check type using type()

language = "Python" year = 1991 version = 3.9 print(type(language)) print(type(year)) print(type(version)) 

This is how we use type() to check the type of an object.

Using isinstance() :

Isinstance can also be used to check type. However, unlike the type() function here we pass the classinfo along with the object the function returns a boolean value.

This will be true if the object belongs to a particular class and vice versa. However, do keep in mind that it only returns a boolean value in case it’s true and would not return the correct type in case it is false.

Syntax of isinstance() :

Code using isinstance() :

language = "Python" year = 1991 version = 3.9 print(isinstance(language, str)) print(isinstance(year, int)) print(isinstance(version, int)) 

As the classinfo for version was passed as int, the isinstance method returns a false. This is how you use the isinstance() method.

Closing thoughts — Python check type

The type() method is the most recommended method to check the type of an object. The isinstance method stands out as it can be used to check if an object is part of a class as well.

Hence, I would always recommend using the type() method to check the type of an object.

Источник

Python isinstance() function explained with examples

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 .

Table of contents

How To Use isinstance() Function in Python

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

isinstance(object, classinfo)
  • 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()

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")

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 = 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 = print(isinstance(numbers, set)) # Output True

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 True

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() .

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 

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 False

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 True

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? True

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']]

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 list

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)]

Next steps

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

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

About Vishal

I’m Vishal Hule, Founder of PYnative.com. I am a Python developer, and I love to write articles to help students, developers, and learners. Follow me on Twitter

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 10 questions
  • Each Quiz contains 12-15 MCQ

Источник

Оцените статью