有没有办法在ipython中进入函数的第一行。我想象一下看起来像:
%step foo(1, 2)
运行ipdb
并在foo
的第一行设置断点。
如果我现在要这样做,我必须转到函数的源代码并添加import ipdb; ipdb.set_trace()
行。
答案 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
即可进入该功能。