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))
['__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