Python | type() function

type() method returns class type of the argument(object) passed as parameter. type() function is mostly used for debugging purposes.

Two different types of arguments can be passed to type() function, single and three argument. If single argument type(obj) is passed, it returns the type of given object. If three arguments type(name, bases, dict) is passed, it returns a new type object.

Syntax :

type(object)
type(name, bases, dict)

Parameters :

name : name of class, which later corresponds to the __name__ attribute of the class.
bases : tuple of classes from which the current class derives. Later corresponds to the __bases__ attribute.
dict : a dictionary that holds the namespaces for the class. Later corresponds to the __dict__ attribute.



Returntype :

returns a new type class or essentially a metaclass.

 

Code #1 :

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 simple code to explain
# the type() function
print(type([]) is list)
  
print(type([]) is not list)
  
print(type(()) is tuple)
  
print(type({}) is dict)
  
print(type({}) is not list)

chevron_right


Output :

True
False
True
True
True

 

Code #2 :

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to explain
# the type() function
  
# Class of type dict
class DictType:
    DictNumber = {1:'John', 2:'Wick',
                  3:'Barry', 4:'Allen'}
      
    # Will print the object type
    # of existing class
    print(type(DictNumber))
  
# Class of type list    
class ListType:
    ListNumber = [1, 2, 3, 4, 5]
      
    # Will print the object type
    # of existing class
    print(type(ListNumber))
  
# Class of type tuple    
class TupleType:
    TupleNumber = ('Geeks', 'for', 'geeks')
      
    # Will print the object type
    # of existing class
    print(type(TupleNumber))
  
# Creating object of each class    
d = DictType()
l = ListType()
t = TupleType()

chevron_right


Output :

<class 'dict'>
<class 'list'>
<class 'tuple'>

 

Code #3 :

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to explain
# the type() function
  
# Class of type dict
class DictType:
    DictNumber = {1:'John', 2:'Wick', 3:'Barry', 4:'Allen'}
      
# Class of type list    
class ListType:
    ListNumber = [1, 2, 3, 4, 5]
  
# Creating object of each class   
d = DictType()
l = ListType()
  
# Will print accordingly whether both
# the objects are of same type or not  
if type(d) is not type(l):
    print("Both class have different object type.")
else:
    print("Same Object type")

chevron_right


Output :

Both class have different object type.

 
Code #4 : Use of type(name, bases, dict)

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program to demonstrate
# type(name, bases, dict)
  
# New class(has no base) class with the
# dynamic class initialization of type()
new = type('New', (object, ),
      dict(var1 ='GeeksforGeeks', b = 2009))
  
# Print type() which returns class 'type'
print(type(new))
print(vars(new))
  
  
# Base class, incorporated
# in our new class
class test:
    a = "Geeksforgeeks"
    b = 2009
  
# Dynamically initialize Newer class
# It will derive from the base class test
newer = type('Newer', (test, ),
        dict(a ='Geeks', b = 2018))
          
print(type(newer))
print(vars(newer))

chevron_right


Output :

{'__module__': '__main__', 'var1': 'GeeksforGeeks', '__weakref__': , 'b': 2009, '__dict__': , '__doc__': None}

{'b': 2018, '__doc__': None, '__module__': '__main__', 'a': 'Geeks'}

 
Applications :