Zugriff auf einen Rückgabewert einer Funktion, die verfolgt wird

9

Gibt es eine Möglichkeit, auf den Rückgabewert einer Funktion zuzugreifen, die von einer Funktion verfolgt wird, die als Exit-Parameter zum Verfolgen angegeben ist? Das klingt schwer zu verstehen, aber ich konnte die Frage nicht vereinfachen, ohne die Information zu verlieren. Also hier ist ein einfaches Beispiel.

Wir haben eine einfache Funktion

%Vor%

Und einige Funktionen, die aufgerufen werden sollen, wenn der Aufruf von add10 beendet wird.

%Vor%

Die Ablaufverfolgung wird folgendermaßen eingerichtet:

%Vor%

Und wir rufen zu add10

auf %Vor%

Wie ich gerade verstehe, wird trace.exit aufgerufen, nachdem add10 die Ausführung beendet hat. Gibt es eine Möglichkeit, auf den Rückgabewert von add10 in trace.exit zuzugreifen?

Ich fühle, dass es sein sollte. Aber mit sys.frames spielen und durch Umgebungen schauen konnte ich es nicht bekommen.

Der Grund dafür ist der Wunsch, alle Aufrufe einer Funktion zu erfassen und Werte zurückzugeben, die sie geben.

UPD Lösung mit Wrapper oder etwas ähnliches ist nett, aber trace implementiert bereits ein Decorator-Muster, so meine Frage über den Zugriff auf Rückgabewert von trace , nicht über das Problem der Dekorateure zu lösen in R.

    
Roman Tsegelskyi 10.07.2014, 22:03
quelle

1 Antwort

4

Warum verwenden Sie keinen Wrapper, der den Rückgabewert explizit einer lokalen Variablen zuweist:

%Vor%

Ein Nachteil ist, dass der Wrapper immer unsichtbare Ergebnisse liefert - deshalb druckt das obige Beispiel nur die formatierte Ausgabe.

    
krlmlr 10.07.2014, 22:34
quelle

Tags und Links