Python如何Using Variable Explorer in Spyder to View Other Namespaces

 Python真是黑科技啊,居然在程序运行中不能在Spyder的Variable Explorer里面查看变量的具体属性,让伦家甚是想念MATLAB的workspace,忍不住要叨叨Spyder几句,你说你既然都仿了MATLAB的工作界面,咋就不能地道点,仿的到位一点呢?不开森~

输入:

def main():
   a = 2
   b = 4
   c = a + b

Variable Explorer里面是空的,啥也没有。。。

那怎么办?需要定义一个全局变量啊,注:inspect.currentframe().f_locals 是获取当前的栈帧;
输入:

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()

在Variable Explorer里面可以看到:
这里写图片描述

但是如果是嵌套函数呢,内部的局部变量如何才能查看到呢?
歪歪了一下,这么搞吧,在嵌套函数里面也搞一个全局变量,把里面的变量都存进去,
输入:

import inspect
local_vars = {}

def main():
    global local_vars
    a = 2
    b = 4
    c = a+b
    def ve(a):
        global s
        m = 1
        d = m+a
        s = inspect.currentframe().f_locals
        print s
        return d
    ve(5)
    local_vars = inspect.currentframe().f_locals
    return c

main()

于是,再Variable Explorer里面可以看到:
这里写图片描述

可是还是有不爽的地方,因为如果嵌套函数内部的局部变量太多的话,那就极度占用内存,这也不太好吧,
可是咋办勒,,容我再想想

你可能感兴趣的:(Python)