597 votes

énumérer toutes les fonctions dans un module python

Je ne suis pas un pythonista, donc je ne suis pas sûr que ce soit vraiment évident ou pas. J'ai un module python installé sur mon système et j'aimerais pouvoir voir quelles fonctions / classes / méthodes sont disponibles pour que je puisse appeler la fonction doc sur chacune d'entre elles. En ruby ​​je peux faire quelque chose comme ClassName.methods pour obtenir une liste de toutes les méthodes disponibles sur cette classe. Y a-t-il quelque chose de similaire en python?

par exemple. quelque chose comme:

 from somemodule import foo
print foo.methods # or whatever is the correct method to call
 

636voto

camflan Points 4010

Vous pouvez utiliser dir(module) pour voir toutes les méthodes / attributs disponibles. Consultez également PyDocs.

297voto

Thomas Wouters Points 38811

Le module d'inspection Voir aussi le module pydoc , la fonction help() dans l 'interpréteur interactif et l' outil de ligne de commande pydoc qui génère la documentation que vous recherchez. Vous pouvez simplement leur donner la classe dont vous souhaitez voir la documentation. Ils peuvent également générer, par exemple, une sortie HTML et l'écrire sur le disque.

243voto

Dan Points 18831

Une fois que vous avez import ed le module, vous pouvez simplement faire:

  help(modulename)
 

... Pour obtenir les docs sur toutes les fonctions à la fois, interactivement. Ou vous pouvez utiliser:

  dir(modulename)
 

... Pour lister simplement les noms de toutes les fonctions et variables définies dans le module.

137voto

adnan Points 216

Un exemple avec inspecter:

 from inspect import getmembers, isfunction
from my_project import my_module

functions_list = [o for o in getmembers(my_module) if isfunction(o[1])]
 

getmembers renvoie une liste de tuples (nom_objet, type_objet).

Vous pouvez remplacer isfunction par l'une des autres fonctions isXXX du module inspect.

78voto

Oli Points 5620
import types
import yourmodule

print [yourmodule.__dict__.get(a) for a in dir(yourmodule)
  if isinstance(yourmodule.__dict__.get(a), types.FunctionType)]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X