如何找出模块

时间:2017-07-14 06:46:21

标签: python python-2.7 python-3.x module

我想在列表中列出所有函数调用,包括子模块调用。在我的例子中,它是os模块的os_list。我想存储os.path模块调用的调用以及。对于函数调用的识别我使用“__call”,用于识别模块的内容。

for name in dir(os):
    attr = getattr(os, name)
    if hasattr(attr, '__call__'):
        os_list.append(name)

1 个答案:

答案 0 :(得分:1)

您可以使用[Python]: isinstance(object, classinfo)检查对象类型 对于模块,classinfo参数应为[Python]: types.ModuleType

isinstance(attr, types.ModuleType)

虽然我们在讨论这个问题,但你可以为功能做同样的事情。所以,你的代码看起来像:

from types import BuiltinFunctionType, FunctionType, ModuleType

# ...

os_list = list()
for name in dir(os):
    attr = getattr(os, name)
    if isinstance(attr, (BuiltinFunctionType, FunctionType, ModuleType)):
        os_list.append(name)

@ EDIT0 :包含内置函数。