使用getmembers(模块,isfunction)时忽略python模块中的导入函数

时间:2014-07-28 12:02:36

标签: python reflection

有没有办法忽略python模块中的导入函数?

使用以下模块module.py:

from inspect import getmembers, isfunction
import foo

def boo():
   foo()

def moo():
   pass


funcs = [mem[0] for mem in getmembers(module, isfunction)]

funcs等于:['boo','moo', 'foo'](包括导入的函数'foo')

我希望func只包含['boo', 'moo']

1 个答案:

答案 0 :(得分:3)

您必须测试__module__属性;它是一个命名完整模块路径的字符串:

funcs = [mem[0] for mem in getmembers(module, isfunction)
         if mem[1].__module__ == module.__name__]