In Python möchte ich eine Funktion schreiben, die ihre Ergebnisse auf die Konsole drucken würde, wenn sie selbst aufgerufen würde (hauptsächlich zur interaktiven Verwendung oder zum Debuggen). Für den Zweck dieser Frage, lassen Sie uns sagen, dass es den Status von etwas überprüft. Wenn ich nurGibt es eine Möglichkeit zu überprüfen, ob die Funktionsausgabe einer Variablen in Python zugewiesen ist?
check_status()
nennen würde Ich mag so etwas wie sehen:
Pretty printer status check 0.02v
NOTE: This is so totally not written for giant robots
=================================
System operational: ... ok
Time to ion canon charge is 9m 21s
Booster rocket in AFTERBURNER state
Range check is optimal
Rocket fuel is 10h 19m 40s to depletion
Beer served is type WICKSE LAGER, chill optimal
Suggested catchphrase is 01_FIGHTING_SPIRIT_GOGOGO
Virtual ... on
Aber ich möchte auch, dass er die Ausgabe als Liste übergeben, wenn ich es im Rahmen einer Variablen aufrufen Zuordnung:
not_robot_stat = check_status()
print not_robot_stat
>>> {'cond_op': 1, 't_canoncharge': 1342, 'stage_booster': 5, 'range_est_sigma': 0.023, 'fuel_est': 32557154, 'beer_type': 31007, 'beer_temp': 2, 'catchphrase_suggestion': 1023, 'virtual_on': 'hell yes'}
So ... ist es eine Möglichkeit, um dynamisch zu wissen, innerhalb einer Funktion, ob sein Ausgang zugewiesen wird? Ich würde gerne in der Lage sein, dies zu tun, ohne Param-Passing zu verwenden oder eine andere dafür vorgesehene Funktion zu schreiben. Ich habe ein wenig gegoogelt, und von dem, was ich sagen kann, sieht es so aus, als müsste ich mit dem Bytecode spielen. Ist das wirklich notwendig?
Tim, hast du meinen Code probiert?Es erkennt immer, wenn Sie die Funktion vom Debuggen aus aufrufen und die Diagnose wie gewünscht ausgeben können. – Unknown
Nun, ich gehe noch einmal auf die Feature-Anforderungen, um zu sehen, ob dies erforderlich ist ... aber es sieht so aus, als ob ich es in ALLEN Fällen brauche, nicht nur im interaktiven Modus. Die Sotry ist ein wenig beteiligt, also werde ich versuchen, es kohärenter zu machen und meine Frage in ein paar Tagen zu aktualisieren. –
@ Tim, in diesem Fall habe ich eine neue Lösung mit Bytecode lesen. – Unknown