我正在调试方法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中的方法结尾处仅在方法开头处中断:

09-10 08:37
查看更多