【发布时间】:2015-11-11 01:40:59
【问题描述】:
假设我使用sys._getframe(1)获取了一个堆栈帧,显然不是当前帧。
现在我想以某种方式移动到外部堆栈框架并执行一条语句,例如x=10,以便在该框架中创建一个变量。
我知道以这种方式设置变量不是一个好习惯,但它可能只是其他一些语句。所以,重要的部分是如何移动到那个框架。 with(frame) 似乎不起作用。
我觉得应该是可以的,不然为什么inspect模块里会有getinnerframes和getouterframes这两个函数呢?除非你可以移到外框,否则为什么还要有内框?
编辑:在pdb 模块中,他们有两个上下命令,docs 说
d(own) 将当前帧在堆栈跟踪中向下移动一级(到 较新的框架)。
u(p) 将当前帧在堆栈中上移一级 跟踪(到旧框架)。
这对我的案子有帮助吗?如果有,如何使用?
【问题讨论】:
标签: python cpython stack-frame