Wie Traceit verwendet wird, um Funktionseingabevariablen im Stack-Trace zu melden

Ich habe den folgenden Code verwendet, um die Ausführung meiner Programme zu verfolgen:

import sys
import linecache
import random

def traceit(frame, event, arg):
    if event == "line":
        lineno = frame.f_lineno
        filename = frame.f_globals["__file__"]
        if filename == "<stdin>":
            filename = "traceit.py"
        if (filename.endswith(".pyc") or
            filename.endswith(".pyo")):
            filename = filename[:-1]
        name = frame.f_globals["__name__"]
        line = linecache.getline(filename, lineno)
        print "%s:%s:%s: %s" % (name,  lineno,frame.f_code.co_name , line.rstrip())
    return traceit


def main():
    print "In main"
    for i in range(5):
        print i, random.randrange(0, 10)
    print "Done."

sys.settrace(traceit)
main()

Wenn Sie diesen oder einen ähnlichen Code verwenden, können Sie die Werte bestimmter Funktionsargumente melden? Mit anderen Worten, der obige Code sagt mir, "welche" Funktionen aufgerufen wurden und ich möchte wissen, "was" die entsprechenden Werte der Eingabevariablen für diese Funktionsaufrufe sind.

Danke im Voraus

Antworten auf die Frage(4)

Ihre Antwort auf die Frage