如何在Python 2.5模块中列出方法?

29

我正在尝试使用一个没有任何文档的用C语言编写的Python库。我想使用内省至少查看模块中有哪些方法和类。是否有人有一个函数或库可以用来列出模块中的函数(带参数列表)和类(带方法和成员变量)?

我找到了这篇文章介绍Python内省,但我相当确定它不适用于Python 2.5。感谢帮助。

4个回答

58

以下是您至少可以做的一些事情:

import module

print dir(module) # Find functions of interest.

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

12

你提到的马克·皮尔格里姆的第四章确实适用于Python 2.5(以及任何其他近期的2.*版本,因为具有向后兼容性)。马克没有提到help,但我看到其他答案有提到。

至关重要的一点是,没有人(包括马克;-)似乎已经提到过的是检查,这是Python标准库中一个非常好的模块,对高级内省非常有帮助。


“第四章”的链接已失效。” - AlbertGarde

8

这个也很不错:

import module
help(module)

它将会输出模块的docstring,然后列出模块的内容,也会打印它们各自的docstring。


我找不到任何替代方法来获取帮助的内容,特别是我正在寻找“包内容”。虽然这在帮助文本中有提及,但是其他答案都没有提供一种通过算法获取它的方式。 - AlanSE
1
啊,我在这里找到了它的源代码 https://github.com/python/cpython/blob/ac317700ce7439e38a8b420218d9a5035bba92ed/Lib/pydoc.py#L733,使用 for importer, modname, ispkg in pkgutil.iter_modules(object.__path__): 的模式。 - AlanSE

4

dir()函数显示一个模块拥有的所有成员。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接