Introspección de código en Python

La introspección es una capacidad para determinar el tipo de un objeto en tiempo de ejecución. Todo en python es un objeto. Cada objeto en Python puede tener atributos y métodos. Mediante el uso de la introspección, podemos examinar dinámicamente los objetos de Python. La introspección de código se utiliza para examinar las clases, métodos, objetos, módulos, palabras clave y obtener información sobre ellos para que podamos utilizarla. La introspección revela información útil sobre los objetos de su programa. Python, al ser un lenguaje de programación dinámico y orientado a objetos, proporciona un tremendo apoyo a la introspección. El soporte de Python para la introspección es profundo y amplio en todo el lenguaje.
Python proporciona algunas funciones integradas que se utilizan para la introspección del código. Son:
1. type() : esta función devuelve el tipo de un objeto.

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

Producción:

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

 
2. dir() : esta función devuelve una lista de métodos y atributos asociados con ese objeto.

# 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))
Producción:

['__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(): esta función convierte todo en una 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))

Producción:

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

 
4. id() : esta función devuelve una identificación especial de un objeto.

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

Producción:

139787756828232
139787757942656
139787757391432
139787756815768

Métodos para la introspección de código

Función Descripción
ayuda() Se usa para encontrar lo que hacen otras funciones.
hasattr() Comprueba si un objeto tiene un atributo
getattr() Devuelve el contenido de un atributo si lo hay.
repr() Devuelve la representación de string del objeto
invocable() Comprueba si un objeto es un objeto invocable (una función) o no.
essubclase() Comprueba si una clase específica es una clase derivada de otra clase.
esinstancia() Comprueba si un objeto es una instancia de una clase específica.
sistema() Dar acceso a variables y funciones específicas del sistema
__doc__ Devolver alguna documentación sobre un objeto.
__nombre__ Devuelve el nombre del objeto.

Publicación traducida automáticamente

Artículo escrito por bestharadhakrishna y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *