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

时间:2013-07-30 00:17:58

标签: 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                                                      
    print i[1].__doc__   # print docstring     

如何仅打印 模块中定义的函数的文档字符串?

1 个答案:

答案 0 :(得分:1)

函数具有__module__属性,用于存储定义它们的模块的名称。您可以检查它是否与您正在检查的模块匹配。请注意,这将经常遗漏实际上是模块API的一部分的函数,但是在不同的模块中定义。例如,heapq.heappush.__module__ == '_heapq',因为该函数实际上是在C模块_heapq中定义的,import *是在Python模块heapq中定义的。