S'il s'agit d'une exploration pour voir ce qui se passe, je recommanderais de consulter IPython . Cela ajoute divers raccourcis pour obtenir la documentation, les propriétés et même le code source d'un objet. Par exemple, l'ajout d'un " ?" à une fonction donnera l'aide de l'objet (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 d'onglets, l'impression jolie des résultats, l'historique des résultats, etc. qui le rendent très pratique pour ce genre de programmation exploratoire.
Pour une utilisation plus programmatique de l'introspection, les modules de base tels que dir()
, vars()
, getattr
etc. seront utiles, mais il vaut la peine de consulter le site Web de la Commission européenne. inspecter module. Pour récupérer la source d'une fonction, utilisez " inspect.getsource
", c'est-à-dire en l'appliquant à lui-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 aussi souvent utile si vous avez affaire à l'habillage ou à la manipulation de fonctions, car elle donne les noms et les valeurs par défaut des paramètres des fonctions.