Si c'est pour l'exploration pour voir ce qui se passe, je recommanderais de regarder IPython . Cela ajoute divers raccourcis pour obtenir une documentation des objets, des propriétés et même du code source. Par exemple, ajouter un "?" à une fonction donnera l'aide pour l'objet (en fait un raccourci pour "help (obj)", alors que l'utilisation de deux? (" func??
") affichera le code source s'il est disponible.
Il y a aussi beaucoup de commodités supplémentaires, comme la complétion des onglets, la jolie impression des résultats, l'historique des résultats, etc. qui le rendent très pratique pour ce type de programmation exploratoire.
Pour une utilisation plus programmatique de l' introspection, les builtins de base comme dir()
, vars()
, getattr
etc sera utile, mais il vaut bien votre temps pour vérifier le inspectent module. Pour récupérer la source d'une fonction, utilisez " inspect.getsource
" par exemple, en l'appliquant à elle-même:
>>> 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
est également souvent utile si vous traitez ou manipulez des fonctions, car il donnera les noms et les valeurs par défaut des paramètres de fonction.