Open In App

Code introspection in Python

Improve
Improve
Like Article
Like
Save
Share
Report

Introspection is an ability to determine the type of an object at runtime. Everything in python is an object. Every object in Python may have attributes and methods. By using introspection, we can dynamically examine python objects. Code Introspection is used for examining the classes, methods, objects, modules, keywords and get information about them so that we can utilize it. Introspection reveals useful information about your program’s objects. Python, being a dynamic, object-oriented programming language, provides tremendous introspection support. Python’s support for introspection runs deep and wide throughout the language.
Python provides some built-in functions that are used for code introspection.They are:
1.type() : This function returns the type of an object.




# Python program showing
# a use of type function
  
import math
  
# print type of math
print(type(math))
   
# print type of 1 
print(type(1))
  
# print type of "1"
print(type("1"))
  
# print type of rk
rk =[1, 2, 3, 4, 5, "radha"]
  
print(type(rk))
print(type(rk[1]))
print(type(rk[5]))


Output:

<class 'module'>
<class 'int'>
<class 'str'>
<class 'list'>
<class 'int'>
<class 'str'>

 
2.dir() :This function return list of methods and attributes associated with that object.




# Python program showing
# a use of dir() function
  
import math
rk =[1, 2, 3, 4, 5]
  
# print methods and attributes of rk
print(dir(rk))
rk =(1, 2, 3, 4, 5)
  
# print methods and attributes of rk
print(dir(rk))
rk ={1, 2, 3, 4, 5}
  
print(dir(rk))
print(dir(math))


Output:

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

 
3.str() :This function converts everything into a string .




# Python program showing
# a use of str() function
  
a = 1
print(type(a))
  
# converting integer
# into string
a = str(a)
print(type(a))
  
s =[1, 2, 3, 4, 5]
print(type(s))
  
# converting list
# into string
s = str(s)
print(type(s))


Output:

<class 'int'>
<class 'str'>
<class 'list'>
<class 'str'>

 
4.id() :This function returns a special id of an object.




# Python program showing
# a use of id() function
   
import math
a =[1, 2, 3, 4, 5]
   
# print id of a
print(id(a))
b =(1, 2, 3, 4, 5)
   
# print id of b
print(id(b))
c ={1, 2, 3, 4, 5}
   
# print id of c
print(id(c))
print(id(math))


Output:

139787756828232
139787757942656
139787757391432
139787756815768

Methods for Code Introspection

Function Description
help() It is used it to find what other functions do
hasattr() Checks if an object has an attribute
getattr() Returns the contents of an attribute if there are some.
repr() Return string representation of object
callable() Checks if an object is a callable object (a function)or not.
issubclass() Checks if a specific class is a derived class of another class.
isinstance() Checks if an objects is an instance of a specific class.
sys() Give access to system specific variables and functions
__doc__ Return some documentation about an object
__name__ Return the name of the object.


Last Updated : 07 Dec, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads