有没有办法进入 ipython 中函数的第一行。我想像这样的东西:
%step foo(1, 2)
它运行ipdb
并在foo
.
如果我现在想这样做,我必须转到函数的源代码并添加import ipdb; ipdb.set_trace()
一行。
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>
您要求的 IPython 魔法现在已使用较新的版本实现: https ://stackoverflow.com/a/46333421/4374441
您只需键入%debug foo(1, 2)
thens
即可进入该功能。