如何调试已作为参数传递给另一个函数的函数

How to debug a function that has been passed as an argument to another function

我是 Python 的新手,习惯了在 R 中进行调试。我正在尝试调试 my_function 当它作为参数传递给另一个函数时

df.apply(my_function, axis=1)

当我使用调试器(我在 Spyder V5 中)时,我可以跳转到应用函数(“down”或“crtl + f11”),但我似乎无法导航到 my_function 当它作为参数被调用时。

在 R 中,我会将 browser() 添加到 my_function 并从那里开始,但是当我尝试添加 ipdb.set_trace() 时,我认为这是等效的,我的控制台挂起而没有任何选项供应输入。

我需要在这种情况下检查它,因为当它作为 arg 传递给特定函数而不是其他函数时会中断(它实际上在示例函数“pd.apply”中有效)。

您可以通过双击行号在Spyder 中添加断点。然后你可以 运行 使用调试选项的代码或 Ctrl+F5.

  • 为了移动到下一个断点:继续或Ctrl+F12
  • 移动到下一行:步骤或Ctrl+F10
  • 沿着函数执行移动:Step Into 或 Ctrl+F11