在python中,如何打印导入模块中定义的所有函数的docstring,而不打印导入模块本身导入的函数?

在python中,如何打印导入模块中定义的所有函数的docstring,而不打印导入模块本身导入的函数?,python,function,module,docstring,Python,Function,Module,Docstring,下面的代码从导入的模块打印每个函数的docstring。但是,结果包括一些未在模块内定义的函数,而是由模块导入的函数 import inspect import my_module all_functions = inspect.getmembers(my_module, inspect.isfunction) for i in all_functions: print i[0] # print function name

下面的代码从导入的模块打印每个函数的docstring。但是,结果包括一些未在模块内定义的函数,而是由模块导入的函数

import inspect
import my_module

all_functions = inspect.getmembers(my_module, inspect.isfunction)

for i in all_functions:
    print i[0]           # print function name                                                      
    print i[1].__doc__   # print docstring     

如何仅打印模块中定义的函数的docstring?

函数具有一个
\uuuu module\uuuu
属性,该属性存储它们在其中定义的模块的名称。您可以检查它是否与正在检查的模块匹配。请注意,这经常会丢失实际上是模块API一部分但在不同模块中定义的函数。例如,
heapq.heappush.\uuuu module\uuuu=='\uheapq'
,因为函数实际上是在C模块
\uheapq
中定义的,并且
导入到Python模块
heapq
中,谢谢!必须将函数转换为if语句上的
str
,以便进行检查:
if-str(i[1]。\uuuu-module\uuuu)==“my\u-module”:
(参考问题中的示例)