39

有没有办法进入 ipython 中函数的第一行。我想像这样的东西:

%step foo(1, 2)

它运行ipdb并在foo.

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

4

2 回答 2

61

ipdb 从今年早些时候的 0.7 开始就支持 runcall、runeval 和 run。你可以像这样使用它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>
于 2012-09-28T20:36:32.717 回答
29

您要求的 IPython 魔法现在已使用较新的版本实现: https ://stackoverflow.com/a/46333421/4374441

您只需键入%debug foo(1, 2)thens即可进入该功能。

于 2018-09-28T12:38:00.167 回答