有没有办法忽略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']
。
答案 0 :(得分:3)
您必须测试__module__
属性;它是一个命名完整模块路径的字符串:
funcs = [mem[0] for mem in getmembers(module, isfunction)
if mem[1].__module__ == module.__name__]