我想在列表中列出所有函数调用,包括子模块调用。在我的例子中,它是os模块的os_list。我想存储os.path模块调用的调用以及。对于函数调用的识别我使用“__call”,用于识别模块的内容。
for name in dir(os):
attr = getattr(os, name)
if hasattr(attr, '__call__'):
os_list.append(name)
答案 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 :包含内置函数。