我正在调试方法f()
,其中没有return
。
class A(object):
def __init__(self):
self.X = []
def f(self):
for i in range(10):
self.X.append(i)
我需要查看此方法在调用后立即如何修改变量
X
。为此,我在方法末尾插入一个return
,并在那里设置断点:这样,一旦方法达到其
return
,我就可以看到我的变量X
的值。这可以完成工作,但是我很确定有更好的方法。每次需要调试时都编辑方法或函数似乎很愚蠢。
问题:
是否有其他方法(例如调试器中的选项)在没有
return
的方法的末尾设置断点?(请注意,在鼠标悬停时,在函数调用处设置断点并使用Step Over不会显示
X
,因为该函数是从其他模块调用的。) 最佳答案
您可以在最后一行添加条件断点,并将条件设置为仅在最后一次迭代中出现的条件。
在这种情况下,条件很容易,因为它只是i == 9
,但是根据您的循环条件,它可能要复杂得多,因此有时在末尾添加一条语句将是更简单的解决方案。
该屏幕截图来自IntelliJ IDEA,您的屏幕截图看起来就像来自同一IDE,因此只需右键单击断点以显示对话框并输入您的条件即可。
如果您使用的是其他IDE,则可以确定是否有条件设置断点。
更新:
不支持在Python debugger中的方法结尾处仅在方法开头处中断: