首页 > 解决方案 > 多行语句在哪里设置断点?

问题描述

考虑以下源代码:

1    f(
2      foo(),
3      bar(),
4      spam(a,
5           b,
6      ),
7     )

f如果我希望代码在调用之前立即中断,但在调用foo()bar()和之后,我应该在哪里设置断点spam(a, b)?如果我将它设置在第 1 行,断点将出现得太早。但是我尝试将它设置在第 7 行,并且 pdb 从一开始就没有侵入代码。我在哪里设置断点,为什么?

标签: pythonsyntaxmultilinepdb

解决方案


您可以在函数定义中放置断点,f然后它将在您想要的位置中断。原因是ffoo(),bar()spam(a,b)

或者

编写一个包装函数

def wrapper(fun,a,b):
    temp = fun(a,b)
    return temp

f(
      foo(),
      bar(),
      wrapper(spam,a,b),
     )

并将喙点放在返回语句


推荐阅读