私は、どのようにするべきかを定義するためにassertが使用されているPythonプログラムを持っていて、AssertionError
をスローするのではなく、read-eval-loopで異常をキャプチャしたいとします。確かにAssertionErrorでPythonを強制的にデバッグすることはできますか?
、私は
if (reality!=expectation):
print("assertion failed");
import pdb; pdb.set_trace();
を持つことができますが、それははるかに醜いコードにプレーンassert(reality==expectation)
よります。
except:
ブロックで呼び出されたpdb.set_trace()
がトップレベルにある可能性がありますが、失敗のコンテキストをすべて失ってしまいました。 (例外オブジェクトからはスタックトレースを回復できますが、引数の値などはありません)
--magic
コマンドラインフラグのように、Python3インタプリタを必要なものにすることはできますか?
eclipseを使用し、ブレークポイントでデバッグモードで実行しますか? –
@ JoranBeasley:あなたはいつもIDEを持っているとは限りません。例:sshシェルにログオンしているとき。 – Constantinius
その後、コマンドラインからpdbを使用してブレークポイントを使用する... http://www.doughellmann.com/PyMOTW/pdb/ 'python -m pdb somescript.py'はあなたの' --magic'です –