使用 Spyder (Python) 中的变量资源管理器查看其他命名空间

sch*_*dge 3 python debugging namespaces scientific-computing spyder

Global是否可以在 Spyder 变量资源管理器中查看命名空间?我想清理我的代码以将内容放入 main() 中,但在开发的这个阶段我仍然需要查看变量内容。

编辑:假设我的脚本当前仅包含:

a = 2
b = 4
c = a + b
Run Code Online (Sandbox Code Playgroud)

我在 Spyder 中运行它,我可以在运行后使用变量资源管理器来查看abc。现在,如果我将其包装在 main() 中,按照不太糟糕的编码实践:

def main():
   a = 2
   b = 4
   c = a + b
Run Code Online (Sandbox Code Playgroud)

现在我无法再在变量资源管理器中查看运行后的它们。(评论建议设置一个断点,但这用于实时连接仪器,因此我无法暂停执行)。/结束编辑。

我唯一的选择是(1)将代码保留为我需要在函数外部查看的变量,还是(2)将我想要检查的变量从 main() 导出到全局命名空间中?这两种解决方案都让我以后要做/撤消一些事情。

Car*_*oba 5

抱歉,目前 Spyder 无法实现此操作。这是您可以做的最接近获得您想要的结果的事情:

import inspect

local_vars = {}

def main():
    global local_vars
    a = 2
    b = 4
    c = a+b
    local_vars = inspect.currentframe().f_locals
    return c

main()
Run Code Online (Sandbox Code Playgroud)

运行它后,您应该看到local_vars字典包含函数内定义的局部变量main

注意:双击local_vars内容后,Spyder 将打开一个新窗口,该窗口基本上相当于变量资源管理器中显示的视图,但仅包含本地变量。