En programación, la introspección es la capacidad de determinar las características de un objeto en tiempo de ejecución. Es uno de los puntos fuertes de Python. Todo en Python es un objeto y podemos examinar esos objetos. Python viene con algunas funciones y módulos incorporados para ayudarnos.
dir es una de las funciones más importantes para la introspección. Devuelve una lista de atributos y métodos que pertenecen a un objeto. Aquí hay un ejemplo:
my_list = [1, 2, 3]
dir(my_list)
# Output: ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',
# '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
# '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__',
# '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__',
# '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__',
# '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__',
# '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop',
# 'remove', 'reverse', 'sort']
Esta llamada nos dio los nombres de todos los métodos de una lista. Esto puede ser útil cuando no puede recordar el nombre de un método. Si ejecutamos dir () sin ningún argumento, devuelve todos los nombres en el ámbito actual.
La función de type devuelve el tipo de un objeto. Por ejemplo:
print(type(''))
# Output: <type 'str'>
print(type([]))
# Output: <type 'list'>
print(type({}))
# Output: <type 'dict'>
print(type(dict))
# Output: <type 'type'>
print(type(3))
# Output: <type 'int'>
id devuelve los identificadores únicos de varios objetos. Por ejemplo:
name = "Yasoob"
print(id(name))
# Output: 139972439030304