Find functions explicitly defined in a module (python)
好的,我知道您可以使用dir()方法列出模块中的所有内容,但是是否有任何方法可以只查看该模块中定义的函数?例如,假设我的模块如下所示:
1 2 3 4 | from datetime import date, datetime def test(): return"This is a real method" |
即使我使用inspect()过滤掉内置的内容,我仍然可以得到导入的内容。我会看到:
['date'、'datetime'、'test']
有没有办法排除进口?或者另一种方法来找出模块中定义了什么?
你在找这样的东西吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import sys, inspect def is_mod_function(mod, func): return inspect.isfunction(func) and inspect.getmodule(func) == mod def list_functions(mod): return [func.__name__ for func in mod.__dict__.itervalues() if is_mod_function(mod, func)] print 'functions in current module: ', list_functions(sys.modules[__name__]) print 'functions in inspect module: ', list_functions(inspect) |
编辑:将变量名从"meth"更改为"func",以避免混淆(这里我们讨论的是函数,而不是方法)。
以下几点如何?
1 | grep ^def my_module.py |
您可以检查相关函数的
顺便说一句,类实际上也有
python中的每个类都有一个
python inspect模块可能就是您在这里要查找的。
1 2 3 | import inspect if inspect.ismethod(methodInQuestion): pass # It's a method |