Si esto es para explorar para ver qué está pasando, recomendaría mirar IPython . Esto agrega varios accesos directos para obtener una documentación de objetos, propiedades e incluso código fuente. Por ejemplo, agregar un "?" a una función proporcionará la ayuda para el objeto (efectivamente, un acceso directo para "help (obj)", cuando se use dos? '(" func??
") mostrará el código fuente si está disponible.
También hay muchas comodidades adicionales, como la finalización de pestañas, la impresión bonita de resultados, el historial de resultados, etc., que lo hacen muy útil para este tipo de programación exploratoria.
Para un uso más programática de la introspección, las órdenes internas básicas como dir()
, vars()
, getattr
etc. será útil, pero es bien vale la pena su tiempo para revisar la inspeccione módulo. Para buscar el origen de una función, use " inspect.getsource
" por ejemplo, aplicándolo a sí mismo:
>>> print inspect.getsource(inspect.getsource)
def getsource(object):
"""Return the text of the source code for an object.
The argument may be a module, class, method, function, traceback, frame,
or code object. The source code is returned as a single string. An
IOError is raised if the source code cannot be retrieved."""
lines, lnum = getsourcelines(object)
return string.join(lines, '')
inspect.getargspec
También es útil con frecuencia si se trata de envolver o manipular funciones, ya que proporcionará los nombres y los valores predeterminados de los parámetros de la función.