others - 在Python模块,列出所有函数

在ruby中,我可以用类似ClassName.methods的方式获取这个类上所有可用方法的列表,在python中有没有类似的东西?

比如:


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

时间:

inspect 模块,pydoc模块,交互式解释器中的help()函数和生成文档的pydoc命令行工具,它们还可以生成HTML输出,并将它写入磁盘。

import模块后,你就可以执行以下操作:

 help(modulename)

以交互方式获取所有函数的文档,你可以使用:

 dir(modulename)

简单列出模块中定义的所有函数和变量的名称。

inspect 的例子:


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返回(object_name,object_type )元组的列表。

你可以在inspect模块中将isfunction替换为其他isXXX函数。

这样做就可以了:

dir(module)

但是,如果你觉得阅读返回的列表很麻烦,只需使用以下循环来获取每行的名称。


for i in dir(module): print i

dir(module)是使用脚本或标准解释器的标准方法

这比使用脚本和print来查看模块中定义的内容要方便得多。

  • module.<tab>将显示在模块中定义的所有对象(函数,类等),
  • module.ClassX.<tab>将向你显示类的方法和属性
  • module.function_xy?module.ClassX.method_xy?将向你显示函数/方法的文档字符串
  • module.function_x??module.SomeClass.method_xy??将向你显示函数/方法的源代码。

这不是( 或者至少不再) 适当使用 dir(module) 。 代码应该如下所示:


dir('module') or dir('modules') 

或者指定你想要的模块: dir('sys') 从模块名称系统生成结果。 dir() 在你需要 dir('') 时返回错误。 *help('') 将在大多数函数中返回帮助信息。 help('modules') 将返回模块帮助信息。

...