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)sステップインできます。

于 2018-09-28T12:38:00.167 に答える