Python中文
首页
教程
问答
标签
搜索
登录
注册
从堆栈fram检索模块对象
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>给定一个frame对象,我需要得到相应的module对象。换言之,实现调用者模块以使其正常工作:</p> <pre><code>import sys from some_other_module import callers_module assert sys.modules[__name__] is callers_module() </code></pre> <p>(这是等价的,因为我可以在函数中为这个测试用例生成一个堆栈跟踪。导入只是为了使该示例完整且可测试,并防止调用者模块使用快捷方式使用u name_uu,因为它位于不同的模块中。)</p> <p>我尝试过:</p> ^{pr2}$ <p>它得到了一个frame对象,在这个对象上f廑code将给我一个code对象,但是我无法找到如何获得相应的模块或它的名称(用于系统模块). 如果我可以得到函数对象,这些对象有一个优module_uu属性(也有代码对象),但是框架中没有这个。实际上,并不是所有的代码对象都属于函数对象,比如我的测试用例的代码(上面的assert)。对于没有模块的frame/code对象也可以这样说,但是很多对象都有,而且在我的例子中,它们会这样做,所以不需要处理;但是,在这种情况下,简单的None或exception也可以。在</p> <p>感觉我好像错过了一些简单的东西。需要做些什么才能起作用?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<pre><code>import inspect def callers_module(): module = inspect.getmodule(inspect.currentframe().f_back) return module </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
使用Python创建一个非常大的二进制频率矩阵来运行协作过滤
1 回答
使用Python创建一张HTML网页,其中在不同颜色中重复n遍显示“Hello World”的方法
5 回答
使用Python创建一组唯一的值length L
3 回答
使用python创建不同表格的透视表
5 回答
使用python创建不和谐频道
7 回答
使用python创建不存在的多个文件夹
6 回答
使用python创建串行远程文件
1 回答
使用python创建交互式仪表板时出现问题
1 回答
使用python创建交互式绘图
9 回答
使用python创建交互式自动电子邮件
8 回答
使用Python创建价格列表
10 回答
使用python创建修改的txt文件
1 回答
使用Python创建全局变量,初始化后更改值
10 回答
使用Python创建关键字搜索词数组
5 回答
使用Python创建具有不均匀块大小/堆叠条形图的热图
7 回答
使用Python创建具有依赖于另一列的值的列
4 回答
使用Python创建具有多列的HTML表
9 回答
使用Python创建具有时间范围数据的等距数据帧
6 回答
使用Python创建具有特定顺序或属性的XML文件
10 回答
使用Python创建具有级联功能的搜索栏
3 回答