2009-08-15 5 views
24

Ich versuche, eine in C geschriebene Python-Bibliothek zu verwenden, die keinerlei Dokumentation enthält. Ich möchte Introspektion verwenden, um zumindest zu sehen, welche Methoden und Klassen in den Modulen sind. Hat jemand eine Funktion oder eine Bibliothek, die ich verwenden kann, um die Funktionen (mit Argumentlisten) und Klassen (mit Methoden und Mitgliedsvariablen) innerhalb eines Moduls aufzulisten?Wie kann ich die Methoden in einem Python 2.5-Modul auflisten?

Ich habe this article über Python Introspektion gefunden, aber ich bin mir ziemlich sicher, dass es nicht für Python 2.5 gilt. Danke für die Hilfe.

Antwort

51

Hier sind einige Dinge, die man zumindest tun können:

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

Die Funktion dir() zeigt alle Mitglieder eines Moduls an.

5

Genau dies ist auch ziemlich gut:

import module 
help(module) 

Es wird das docstring für das Modul drucken, dann rufen Sie den Inhalt der Modul, Drucken ihrer Docstrings auch.

+0

Ich kann keinen alternativen Weg finden, um den Inhalt der Hilfe zu bekommen, besonders die "PACKAGE CONTENTS" ist, was ich suche. Dies ist im Hilfetext, aber keine der anderen Antworten bietet eine Möglichkeit, es algorithmisch zu bekommen. – AlanSE

+0

ah, fand es im Quellcode für diese https://github.com/python/cpython/blob/ac317700ce7439e38a8b420218d9a5035bba92ed/Lib/pydoc.py#L733, mit Muster von 'für Importeur, Modname, ispkg in pkgutil.iter_modules (Objekt .__ Pfad __): ' – AlanSE

12

Mark Pilgrim chapter 4, die Sie erwähnen, gilt eigentlich nur gut für Python 2.5 (und alle anderen aktuellen 2.* Version, dank der Abwärtskompatibilität). Mark erwähnt nicht help, aber ich sehe andere Antworten tun.

Ein Schlüsselbit, das niemand (einschließlich Mark ;-) erwähnt zu haben scheint, ist inspect, ein exzellentes Modul in Pythons Standard-Bibliothek, das wirklich mit fortgeschrittener Selbstbeobachtung hilft.

Verwandte Themen