步入IPython中的一个函数

时间:2012-09-28 20:04:17

标签: python debugging ipython pdb

有没有办法在ipython中进入函数的第一行。我想象一下看起来像:

%step foo(1, 2)

运行ipdb并在foo的第一行设置断点。

如果我现在要这样做,我必须转到函数的源代码并添加import ipdb; ipdb.set_trace()行。

2 个答案:

答案 0 :(得分:51)

ipdb已经支持runcall,runeval和今年早些时候的0.7。您可以像pdb.runcall

一样使用它
In [1]: def foo(a, b):
   ...:     print a + b
   ...:

In [2]: import ipdb

In [3]: ipdb.runcall(foo, 1, 2)
> <ipython-input-1-2e565fd9c4a4>(2)foo()
      1 def foo(a, b):
----> 2     print a + b
      3

ipdb>

答案 1 :(得分:9)

您所要求的IPython魔术现在已通过较新的版本实现: https://stackoverflow.com/a/46333421/4374441

您只需输入%debug foo(1, 2),然后输入s即可进入该功能。