Python Decorator zum Drucken jeder Zeile, die von einer Funktion ausgeführt wird

8

Ich möchte zu Debugging-Zwecken etwas ausgeben, das zu jeder Zeile gehört, die in einer Python-Methode ausgeführt wird.

Wenn beispielsweise eine Zuweisung in der Zeile vorhanden ist, möchte ich den Wert ausgeben, der für diese Variable zugewiesen wurde, und wenn ein Funktionsaufruf vorhanden war, möchte ich den von der Funktion zurückgegebenen Wert usw. ausdrucken.

Also, zum Beispiel, wenn ich einen Dekorator verwenden würde, angewendet auf die Funktion / Methode wie:

%Vor%

Wenn der Funktionstest aufgerufen wird, sollte Folgendes gedruckt werden:

%Vor%

Gibt es einen Weg, dies zu erreichen? Grundsätzlich möchte ich wissen, ob ich einen Code schreiben kann, der Zeile für Zeile durch einen anderen Code gehen kann, was für eine Anweisung es ist, usw. Oder vielleicht können wir ein Wörterbuch bekommen, um alle Variablen herauszufinden Eine Klasse, kann ich ein Wörterbuch wie Datenstruktur bekommen, um jeden Befehl in einer Funktion zu erhalten, was ein so gutes Metaprogramm ist.

Daher suche ich besonders nach einer Lösung, die Dekoratoren verwendet, da ich neugierig bin, ob man einen Dekorateur haben kann, der Zeile für Zeile eine ganze Funktion durchlaufen und Zeile für Zeile dekorieren kann. aber alle und alle Lösungen sind willkommen.

Vielen Dank im Voraus.

    
ironstein 23.08.2015, 05:19
quelle

1 Antwort

11

Wie wäre es mit so etwas? Würde das für Sie funktionieren?

Debugkontext:

%Vor%

Debug Decorator:

%Vor%

Verwendung

%Vor%

Ausgabe

%Vor%     
ashwinjv 28.08.2015 00:17
quelle