假设我使用 获得了一个堆栈帧sys._getframe(1)
,这显然不是当前帧。
现在我想以某种方式移动到外部堆栈框架并执行一条语句,例如 Maybe x=10
,以便在该框架中创建一个变量。
我知道以这种方式设置变量不是一个好习惯,但这可能是其他一些陈述。所以,重要的部分是如何移动到那个框架。with(frame)
似乎不起作用。
我认为这应该是可能的,否则为什么会有两个名为getinnerframes
和模块getouterframes
的函数?inspect
除非你可以移到外框,否则为什么还要有内框?
编辑:在pdb
模块中,他们有上下两个命令,文档说
d(own) 将当前帧在堆栈跟踪中向下移动一级(到较新的帧)。
u(p) 在堆栈跟踪中将当前帧向上移动一级(到较旧的帧)。
这对我的案子有帮助吗?如果是,如何使用?