The type() function either returns the type of the object or returns a new type object based on the arguments passed.
Syntax that returns the type of the specified object (1 parameter)
type(object)type() Parameters
Python type() function parameters:
| Parameter | Condition | Description |
|---|---|---|
object |
Required | Any object (number, string, list, custom object etc.) |
type() Return Value
Python type() function returns the type of the given object.
Syntax that returns a new type object (3 parameters)
type(name, bases, dict)type() Parameters
Python type() function parameters:
| Parameter | Condition | Description |
|---|---|---|
name |
Required | Specifies the class name |
bases |
Optional | Specifies the base classes |
dict |
Optional | Specifies the namespace containing definitions for the class |
type() Return Value
Python type() function returns a new type object, effectively creating a new class.
Examples
Example 1: Determining the Type of an Object
x = 10
print(type(x)) # Output:
x = 'Hello'
print(type(x)) # Output: <class 'str'>
x = ['red', 'green', 'blue', 'yellow']
print(type(x)) # Output: <class 'list'>
x = {'name': 'Tom', 'age': 25}
print(type(x)) # Output: <class 'dict'>output
<class 'int'>
<class 'str'>
<class 'list'>
<class 'dict'>It works also with Custom Objects:
class MyClass:
num = 0
myObj = MyClass()
print(type(myObj)) # Output: <class '__main__.MyClass'>output
<class '__main__.MyClass'>Example 2: Using type() with Conditional Statements
This example shows how to use the type() function in conditional statements to check if an object is of a specific type.
print(type([]) is list)
print(type([]) is not list)
print(type(()) is tuple)
print(type({}) is dict)
print(type({}) is not list)output
True
False
True
True
TrueExample 3: Using type() to Dynamically Create Classes (type() with 3 parameters)
The type() function can dynamically create classes in Python.
With three arguments, this function returns a new type object. For example, the following two statements create identical type objects.
class X:
a = 1
X = type('X', (object,), dict(a=1))In this example, the type() is used to create a new class named X:
- The first argument
Xis the name of the new class. - The second argument
(object,)specifies that the new class should inherit from the object class, which is the base class for all classes in Python. - The third argument
dict(a='Foo', b=123)is a dictionary that defines the attributes of the new class.
object1 = type('X', (object,), dict(a='Foo', b=123))
print(type(o1))
print(vars(o1))output
<class 'type'>
{'a': 'Foo', 'b': 123, '__module__': '__main__', '__dict__': <attribute '__dict__' of 'X' objects>, '__weakref__': <attribute '__weakref__' of 'X' objects>, '__doc__': None}In this example,
- A class
testis defined with two class attributesaandb. - Then,
type()is used again to create a new class namedY, which inherits fromMyClass. - The dictionary
dict(a='Foo', b=12)defines the attributes of the new class, overriding thebattribute from theMyClassclass.
class MyClass:
a = 'MyClass'
b = 123
object2 = type('Y', (MyClass,), dict(a='MyClass', b=12))
print(type(object2))
print(vars(object2))output
<class 'type'>
{'a': 'MyClass', 'b': 12, '__module__': '__main__', '__doc__': None}