python - 如何从调用模块获取文档字符串?
问题描述
我可以得到__doc__
主脚本的字符串吗?
这是从命令行运行的启动脚本:python a.py
模块 a.py
import b
b.func()
模块 b.py
def func():
???.__doc__
我怎样才能得到调用模块,作为一个对象?
我不是在询问如何将文件名作为字符串获取。我知道如何从堆栈跟踪中检索文件名。我不想通过手动解析来检索文档字符串。m = __import__(a)
另外,由于循环导入循环,我认为我不能只导入。
解决方案
一个.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 是此要点的代码
这种方法的缺点是它获取模块名称的字符串表示并重新导入它,而不是获取对模块(类型)的引用。
推荐阅读
- java - 在 for 循环期间从 String 和 StringBuilder 列表中删除项目不会给出相同的输出
- javascript - 如何从元素绑定数据Web组件
- c# - 使用 Unity 引擎和 C# 在代码中进行排序和二进制搜索
- c# - 如何在c#中打印出矩形值?
- r - 使用 Lubridate 在 R 中将字符列转换为日期
- ios - 从锁定的设备启动 CarPlay 音频应用程序时无法启动
- python - 保护 Python Web 抓取代码免受崩溃
- ios - 删除所有文件后使用 Ubiquity Container
- node.js - 控制台说下一个没有定义
- java - Jackson 或 Gson 以 mapKey 为实体序列化/反序列化实体