Мой код, к лучшему или худшему, изобилует однобуквенными переменными (это физика, поэтому эти буквы имеют смысл), а также NumPy, с которыми я часто взаимодействую.
При использовании отладчика Python, иногда я хочу посмотреть на значение, скажем, n
. Однако когда я нажимаю n<enter>
, это команда PDB для (n)ext
, которая имеет более высокий приоритет. print n
работает, глядя на него, но как я могу его установить?
eval
?eval('n = 3')
? Может быть, это поможет :)Ответы:
Используйте восклицательный знак
!
перед оператором, чтобы он запускался:python -m pdb test.py > /home/user/test.py(1)<module>() -> print('foo') (Pdb) !n = 77 (Pdb) !n 77 (Pdb) n foo > /home/user/test.py(2)<module>() -> print('bar') (Pdb)
В документах говорится:
источник
Вы можете использовать точку с запятой, поэтому просто поставьте перед ней что-нибудь другое:
ipdb> print n 2 ipdb> n > 145 <some code here> 146 147 ipdb> 1; n=4 1 ipdb> print n 4
источник
Это не прямой ответ на ваш вопрос, но он может вам помочь: PuDB - это консольный визуальный интерфейс для PDB, который по дизайну отделяет команды от манипуляции с переменными.
источник
Эрик IDE, Wing IDE и Spyder, если упомянуть лишь некоторые из них, имеют визуальные отладчики, которые стоит попробовать, поскольку они отделяют отображение значений от команд.
источник