Aktuellen Aufrufstapel aus einer Methode in Python-Code drucken
In Python, wie kann ich drucken Sie das aktuelle call-stack innerhalb einer Methode (für debugging-Zwecke).
InformationsquelleAutor der Frage oneself | 2009-07-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel des Erhaltens der stack über die traceback Modul, und drucken Sie:
Wenn du wirklich nur drucken wollen, die im Stapel nach stderr, die Sie verwenden können:
Oder print zu stdout (nützlich, wenn Sie wollen, zu halten umgeleitet Ausgang zusammen), verwenden Sie:
Aber bekommen es über
traceback.format_stack()
Sie können tun, was auch immer Sie möchten.InformationsquelleAutor der Antwort RichieHindle
InformationsquelleAutor der Antwort Mark Roddy
inspect.stack()
gibt den aktuellen stack eher als die Ausnahme traceback:Sehen https://gist.github.com/FredLoney/5454553 für eine log_stack utility-Funktion.
InformationsquelleAutor der Antwort Fred Loney
Wenn Sie die Verwendung von python-debugger, nicht nur interaktive prüfen von Variablen, aber Sie können im call-stack mit der "where" - Befehl oder "w".
Also an der Spitze des Programms
Dann in den code, wo Sie wollen, um zu sehen, was passiert
und erhalten Sie sank in eine Eingabeaufforderung eingeben
InformationsquelleAutor der Antwort Keir
Hier ist eine Variante von @RichieHindle die ausgezeichnete Antwort, die implementiert einen Dekorator, können selektiv angewendet werden, um Funktionen wie gewünscht. Funktioniert mit Python 2.7.14 und 3.6.4.
Ausgabe von Probe:
InformationsquelleAutor der Antwort martineau