2009-08-15 30 views
24

我正在尝试使用C编写的没有任何文档的Python库。我想用introspection至少看看模块中有什么方法和类。是否有人可以使用函数或库来列出模块中的函数(使用参数列表)和类(使用方法和成员变量)?如何列出Python 2.5模块中的方法?

我发现了this article关于Python内省,但我敢肯定它不适用于Python 2.5。谢谢您的帮助。

回答

51

这里有一些事情可以做,至少:

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

dir()函数显示模块具有的所有成员。

5

只是这是相当不错:

​​

它将打印文档字符串的模块,然后列出的内容模块,也打印他们的文档。

+0

我找不到任何替代方法来获取帮助内容,特别是“包装内容”是我正在寻找的内容。这是在帮助文本中,但没有其他答案提供了一种方法来算法。 – AlanSE 2017-10-24 17:48:43

+0

啊,在https://github.com/python/cpython/blob/ac317700ce7439e38a8b420218d9a5035bba92ed/Lib/pydoc.py#L733的源代码中找到它,模式为'for import,modname,ispkg in pkgutil.iter_modules(object .__路径__):' – AlanSE 2017-10-24 18:03:46

12

Mark Pilgrim的chapter 4,你提到,它确实适用于Python 2.5(以及任何其他最近的2.*版本,由于向后兼容性)。马克没有提到help,但我看到其他答案。

没有人(包括Mark ;-)似乎提到的一个关键点是inspect,它是Python标准库中的一个很好的模块,它确实有助于进行高级自检。