2009-08-15 9 views
24

Próbuję użyć biblioteki Pythona napisanej w C, która nie posiada żadnej dokumentacji. Chcę użyć introspekcji, aby przynajmniej zobaczyć, jakie metody i klasy znajdują się w modułach. Czy ktoś ma funkcję lub bibliotekę, której mogę użyć do wyświetlenia funkcji (z listami argumentów) i klas (za pomocą metod i zmiennych składowych) w ramach modułu?Jak mogę wyświetlić listę metod w module Python 2.5?

Znalazłem this article o introspekcji Pythona, ale jestem prawie pewien, że nie ma ona zastosowania w Pythonie 2.5. Dzięki za pomoc.

Odpowiedz

51

Oto kilka rzeczy, które możesz zrobić, co najmniej:

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

Funkcje dir() wyświetlają wszystkie elementy, które posiada moduł.

5

Tylko ten jest całkiem dobre: ​​

import module 
help(module) 

będzie wydrukować docstring dla modułu, a następnie wyświetlić zawartość moduł, drukowanie ich docstrings też.

+0

Nie mogę znaleźć innego sposobu uzyskania pomocy, w szczególności "ZAWARTOŚĆ OPAKOWANIA" jest tym, czego szukam. Jest to zawarte w tekście pomocy, ale żadna z pozostałych odpowiedzi nie zapewnia sposobu na uzyskanie algorytmu. – AlanSE

+0

ah, znalazłem go wewnątrz kodu źródłowego dla tego https://github.com/python/cpython/blob/ac317700ce7439e38a8b420218d9a5035bba92ed/Lib/pydoc.py#L733, z wzorzec 'dla importera, modname, ispkg w pkgutil.iter_modules (object .__ ścieżka __): ' – AlanSE

12

Mark Pilgrim's chapter 4, o którym wspomniałeś, faktycznie stosuje się dobrze do Pythona 2.5 (i każdej innej najnowszej wersji 2.*, dzięki kompatybilności wstecznej). Mark nie wspomina o help, ale widzę, że inne odpowiedzi robią.

Jednym kluczem, o którym zdaje się, że nikt (w tym Mark ;-) nie wspomniał, jest inspect, doskonały moduł w standardowej bibliotece Pythona, który naprawdę pomaga w zaawansowanej introspekcji.

Powiązane problemy