Angenommen, ich habe ein Python-Programm, wo Assert verwendet wurde, um zu definieren, wie die Dinge sein sollten, und ich möchte Anomalien mit der Read-Eval-Schleife erfassen, anstatt AssertionError
geworfen werden.Kann ich das Debuggen von Python auf AssertionError erzwingen?
Zugegeben, ich
if (reality!=expectation):
print("assertion failed");
import pdb; pdb.set_trace();
haben könnte, aber das ist weit mehr hässlich im Code als ein einfaches assert(reality==expectation)
.
Ich könnte pdb.set_trace()
in einem except:
Block auf Top-Level aufgerufen haben, aber dann hätte ich den ganzen Kontext des Scheiterns verloren, oder? (Ich meine, Stacktrace konnte aus dem Ausnahmeobjekt wiederhergestellt werden, aber keine Argumentwerte usw.)
Gibt es etwas wie eine --magic
Befehlszeilenflagge, die den Python3-Interpreter in das verwandeln könnte, was ich brauche?
Verwenden Sie Eclipse und führen Sie es im Debug-Modus mit einem Haltepunkt? –
@JoranBeasley: Sie haben nicht immer eine IDE zur Hand. Beispiel: Wenn Sie bei einer SSH-Shell angemeldet sind. – Constantinius
dann pdb von der Kommandozeile verwenden und Haltepunkte verwenden ... http://www.doughellmann.com/PyMOTW/pdb/ 'python -m pdb somescript.py' ist deine' --magic' –