如何使用pdb python模块的display命令?

时间:2017-10-05 13:58:54

标签: python pdb

display expression:每次更改时打印出表达式的值。这对于监视在循环中更改的变量的值很有用。因此,假设以下是代码:

for i in range(100):
    for j in range(100):
        a=f(i,j)

我知道对于i和j的某些值执行a=f(i,j)有问题。然后,如何使用pdb模块中的display命令找出i和j不起作用时的值?我想当你使用display命令时,它会自动显示i和j的值,对吧?我是否还需要从pdb模块中组合c命令和b命令?非常感谢您的时间和关注。

1 个答案:

答案 0 :(得分:0)

display设置"观看",以便每次执行都停止(无论是通过填写nextstep还是until ,或打破continue),如果值已更改,它将打印一条显示旧值和新值的消息。

由于您知道f函数存在问题,因此最简单的解决方案是在该函数上放置break,并设置该范围内输入的显示。由于您没有向我们展示f,我不知道在该级别调用输入变量是什么,但它可能不会成为" I"和" j",所以适当地设置显示。

当我使用nsc逐步执行涉及循环的代码时,我发现显示最有用。它为我跟踪变量,使我免于print我感兴趣的变量。如果您知道您的问题在f中,那么您必须在那里单步执行代码你自己,检查所有有趣的陈述中的所有变量。如果您发现自己重复检查变量,则使用display