2009-08-15 3 views
24

J'essaie d'utiliser une bibliothèque Python écrite en C qui n'a aucune documentation d'aucune sorte. Je veux utiliser l'introspection pour au moins voir quelles méthodes et classes sont dans les modules. Est-ce que quelqu'un a une fonction ou une bibliothèque que je peux utiliser pour lister les fonctions (avec les listes d'arguments) et les classes (avec les méthodes et les variables membres) dans un module?Comment puis-je lister les méthodes dans un module Python 2.5?

J'ai trouvé this article à propos de l'introspection Python, mais je suis assez sûr qu'il ne s'applique pas à Python 2.5. Merci pour l'aide.

Répondre

51

Voici quelques choses que vous pouvez faire au moins:

import module 

print dir(module) # Find functions of interest. 

# For each function of interest: 
help(module.interesting_function) 
print module.interesting_function.func_defaults 
4

La fonction dir() affiche tous les membres d'un module.

5

Juste cela est assez bon aussi:

import module 
help(module) 

Il imprime le docstring pour le module, la liste alors le contenu de la module, en imprimant leurs docstrings aussi.

+0

Je ne trouve pas d'autre moyen d'obtenir le contenu de l'aide, en particulier le "CONTENU DE L'EMBALLAGE" est ce que je cherche. C'est dans le texte d'aide, mais aucune des autres réponses ne fournit un moyen de l'obtenir de façon algorithmique. – AlanSE

+0

ah, trouvé à l'intérieur du code source de ce https://github.com/python/cpython/blob/ac317700ce7439e38a8b420218d9a5035bba92ed/Lib/pydoc.py#L733, avec le motif de 'pour l'importateur, modname, ispkg dans pkgutil.iter_modules (objet .__ chemin __): ' – AlanSE

12

Le code chapter 4 de Mark Pilgrim, que vous mentionnez, s'applique réellement à Python 2.5 (et à toute autre version récente de 2.*, grâce à la rétrocompatibilité). Mark ne mentionne pas help, mais je vois d'autres réponses faire.

Un bit clé que personne (y compris Mark ;-) semble avoir mentionné est inspect, un excellent module dans la bibliothèque standard de Python qui aide vraiment à l'introspection avancée.

Questions connexes