【问题标题】:Spyder does not show class instance variables in variable explorer during debugging python在调试python期间,Spyder在变量资源管理器中不显示类实例变量
【发布时间】:2014-09-03 06:56:16
【问题描述】:

我正在使用 Spyder v2.2.5 IDE 进行 python 编程。在 spyder 中使用 pdb 调试我的 python 代码时,IDE 不会在变量资源管理器中显示类实例变量。每次都使用 print 语句检查变量值变得越来越困难。 有没有办法在调试过程中检查类实例变量的值?

【问题讨论】:

标签: spyder


【解决方案1】:

我知道这是一篇旧帖子,但我确实找到了一个临时解决方案。每个类对象都有一个与之关联的字典,其中包含分配的变量。这有点烦人,但您可以分配一个与该字典相同的全局变量,该字典可以在 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,但这会起作用。

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-07-15
      • 2013-10-06
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 2021-11-09
      • 2018-04-21
      相关资源
      最近更新 更多