在调试python期间,Spyder不会在变量资源管理器中显示类实例变量

时间:2014-07-12 23:33:32

标签: spyder

我使用Spyder v2.2.5 IDE编程python。在spyder中使用pdb调试我的python代码时,IDE不会在Variable Explorer中显示类实例变量。每次使用print语句检查变量值变得越来越困难。 有没有办法在调试期间检查类实例变量值?

2 个答案:

答案 0 :(得分:2)

我知道这是一个老帖子,但我确实找到了一个临时解决方案。每个类对象都有一个与之关联的字典,其中包含指定的变量。这有点烦人,但你可以指定一个全局变量等于那个可以在Spyder的变量资源管理器中查看的字典。

import numpy as np 
class someClass:
    def __init__(self):
        self.var1=10     #integer type
        self.var2=np.ones((3,3,3))  #numpy array type
        self.var3=[np.ones((2,2,4))*i for i in range(5)]  #list type (of numpy arrays)

b=someClass()
tempdict=b.__dict__  #Then look at this variable under the Variable explorer

每次更改任何变量时都需要更新tempdict,但这样可行。

答案 1 :(得分:2)

作为临时解决方案,直到他们解决这个问题,我在方法中使用局部变量,直到调试结束。使用相同的名称,但没有“自我”。在它面前。

在return语句之前,我将局部变量分配给“self”。变量等价。

如果我需要现有的“自我”的价值观。在执行期间变量,然后我将它分配给方法开头的局部变量。

调试阶段完成后,您可以使用正确的类属性替换本地。