EDIT: Этот вопрос был решен с помощью apphacker и ConcernedOfTunbridgeWells. Я обновил код, чтобы отразить решение, которое я буду использовать.Извлечение/Печать контекста выполнения
В настоящее время я пишу симулятор разведки роя и стараюсь дать пользователю простой способ отладить их алгоритмы. Среди других результатов я считаю, что было бы полезно предоставить пользователю распечатку контекста выполнения в начале каждого шага алгоритма.
Следующий код достигает того, что мне нужно.
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)
Это дает ожидаемый результат:
{'a': 1, 'c': 3, 'b': 2, 'self': <__main__.TheClass object at 0xb7d2214c>}
Спасибо apphacker и ConcernedOfTunbridgeWells, который указал мне на этот ответ
Не нужно отмечать заголовок, так как теги официально поддерживаются. Столь большое внимание [Python] в заголовке может привести к вашему вопросу, оно не измеряет большой желтый фон, который я получаю, когда вы на самом деле используете «python» в качестве тега. –
Не редактируйте вопрос, чтобы сказать «разрешено». Примите ответ, который его решил. Или напишите свой собственный ответ. –
В будущем я буду, однако редактирование просто заменено # ???? с 2 линиями, которые реализовали функцию, поэтому это не было резким изменением. –