使用getmembers(module, isfunction)时忽略已导入函数
有没有办法在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')
我希望 funcs 只包含 ['boo', 'moo']
。
1 个回答
10
你需要检查一下 __module__
这个属性;它是一个字符串,用来表示完整的模块路径:
funcs = [mem[0] for mem in getmembers(module, isfunction)
if mem[1].__module__ == module.__name__]