EDIT: Cette question a été résolue avec l'aide d'apphacker et ConcernedOfTunbridgeWells. J'ai mis à jour le code pour refléter la solution que j'utiliserai. Je suis en train d'écrire un simulateur d'intelligence de l'essaim et je cherche à donner à l'utilisateur un moyen facile de déboguer ses algorithmes. Parmi les autres sorties, je pense qu'il serait utile de donner à l'utilisateur une impression du contexte d'exécution au début de chaque étape de l'algorithme.Récupération/Impression du contexte d'exécution
Le code suivant permet d'obtenir ce dont j'avais besoin.
import inspect
def print_current_execution_context():
frame=inspect.currentframe().f_back #get caller frame
print frame.f_locals #print locals of caller
class TheClass(object):
def __init__(self,val):
self.val=val
def thefunction(self,a,b):
c=a+b
print_current_execution_context()
C=TheClass(2)
C.thefunction(1,2)
Cela donne le résultat attendu de:
{'a': 1, 'c': 3, 'b': 2, 'self': <__main__.TheClass object at 0xb7d2214c>}
Merci à apphacker et ConcernedOfTunbridgeWells qui m'a pointé vers cette réponse
Il n'est pas nécessaire d'étiqueter le titre puisque les étiquettes sont officiellement supportées. Autant d'attention [Python] dans le titre peut apporter à votre question, il ne mesure pas le grand fond jaune que je reçois lorsque vous utilisez réellement 'python' comme une balise. –
Ne pas modifier la question pour dire "résolu" - Acceptez la réponse qui l'a résolu. Ou postez votre propre réponse. –
Dans l'avenir, je vais, cependant l'édition simplement remplacé # ???? avec 2 lignes qui ont réalisé la fonction, donc ce n'était pas un changement radical. –