Просмотр локальных переменных в Обозревателе переменных Spyder
Я новичок в python и использую IDE Spyder. Одна особенность, которую я ценю в этом, - это variable explorer. Однако, основываясь на некоторых исследованиях, я обнаружил, что он показывает только глобальные переменные. Обходной путь, который я нашел для этого, с помощью модуля inspect:
import inspect
local_vars = {}
def main():
global local_vars
a = 2
b = 4
c = a+b
local_vars = inspect.currentframe().f_locals
return c
main()
это хорошо работает, однако у меня есть другие функции, которые вызываются из main (), и я хотел бы видеть эти переменные в проводнике переменных. Я передразнил то, что было сделано для переменных в основном функция и дикт не появляются. Я заметил, что когда я отключаю параметр "исключить неподдерживаемые типы данных" в параметрах проводника переменных Spyder, появляется второй dict с атрибутом правильного размера, однако я не могу открыть/просмотреть его. Есть идеи по поводу возможной работы? Это мое первое сообщение.
спасибо!!
вот рабочий пример моей проблемы, и я проследил ее до подзаголовков pylab.
import inspect, pylab
mainVars = {}
def main():
global mainVars
a = 1
b = 2
fig = pylab.figure()
subPlot = fig.add_subplot(211) ## line of interest
pylab.close('all')
mainVars = inspect.currentframe().f_locals
main()
когда линия интерес комментируется, дикт создается успешно и может быть просмотрен. Похоже, что объект создан с помощью fig.add_subplot () не обрабатывается должным образом dict. Похоже, это неподдерживаемый тип данных.
надеюсь, это поможет прояснить этот вопрос.
еще раз спасибо.
2 ответов
чтобы просмотреть содержимое локальных переменных, если некоторые из них не поддерживаются, необходимо выполнить следующие действия:
перейдите в меню опций проводника переменных (последний значок слева направо на нем).
выберите опцию исключить неподдерживаемые типы данных.
затем вы увидите все локальные переменные, сохраненные в f_locals
dict, даже если вы не можете дважды щелкнуть по нему.
все эти обходные пути значительно затрудняют чтение кода для посторонних. У вас есть два варианта для проверки значений переменных внутри функции. Во-первых, вы можете просто вернуть переменные, которые вас интересуют:
def main():
a = 2
b = 4
c = a+b
return a, b, c
a, b, c = main()
во-вторых, если вы просто хотите проверить, что функция работает так, как ожидалось, или отладить ее, вы можете отладить функцию и войти в нее. Поэтому выберите Run / Debug из меню вместо запуска файла напрямую. Затем вы можете войти функция-значения переменных будут отображаться в проводнике переменных, когда выполнение находится внутри функции.