2

当我新建一些实例时,它的 __ init __ 会做,例如

self._regex = value  
self._regex_dict = {}

在 Eclipse/PyDev 调试器的变量视图中,self._regex_dict不等于空,而是有一个条目。

似乎变量视图self.regex会自动生成,不幸的是,定义了以下方法并将输出一个条目到self._regex_dict

@property
def regex(self):
    ...
    self._regex_dict[language_code] = compiled_regex
    return self._regex_dict[language_code]

是否有任何配置可以防止 Eclipse/PyDev 调试器的变量视图的这种自动生成行为?

PS 如果我关闭 Eclipse/PyDev 调试器的变量视图,这个问题就不会发生。但是调试的时候真的很需要

谢谢,

4

1 回答 1

0

好吧,当调试器遇到断点并且变量视图可见时,它将对上下文中的所有对象执行 dir() 并对每个值执行 str() 以显示它们。

由于您有一个属性(正则表达式),它会在访问时向您的字典“幕​​后”添加一个条目,并且变量视图肯定会尝试向您显示该值,我不确定您是否有其他方法而不是更改您的程序或更改调试器本身(它将在 pydevd_vars.frameVarsToXML 处获取变量)。

于 2013-05-19T21:10:31.337 回答