首页 > 解决方案 > 如何从调用模块获取文档字符串?

问题描述

我可以得到__doc__主脚本的字符串吗?

这是从命令行运行的启动脚本:python a.py

模块 a.py

import b
b.func()

模块 b.py

def func():
    ???.__doc__

我怎样才能得到调用模块,作为一个对象?

我不是在询问如何将文件名作为字符串获取。我知道如何从堆栈跟踪中检索文件名。我不想通过手动解析来检索文档字符串。m = __import__(a)另外,由于循环导入循环,我认为我不能只导入。

标签: pythondocstring

解决方案


一个.py

"""
Foo bar
"""

import b
if __name__ == '__main__':
    b.show_your_docs()

b.py

def show_your_docs():
    name = caller_name(1)
    print(__import__(name).__doc__)

其中 caller_name 是此要点的代码

这种方法的缺点是它获取模块名称的字符串表示并重新导入它,而不是获取对模块(类型)的引用。


推荐阅读