"SyntaxError: неожиданный EOF при синтаксическом анализе" при переборе словаря в PDB
У меня есть pdb
трассировка, установленная внутри GET
запрос. Я хочу напечатать все атрибуты объекта запроса. Я пытаюсь следующее, в pdb:
(Pdb) request
<GET /foo HTTP/1.1>
(Pdb) for d in dir(request):
*** SyntaxError: unexpected EOF while parsing (<stdin>, line 1)
Я уверен, что здесь есть что-то фундаментальное, чего мне не хватает.
3 ответа
Вы не можете вводить многострочные операторы в pdb
, Вы можете использовать commands
команда, если блок кода должен выполняться в точке останова; help commands
для дополнительной информации.
Вы также можете иногда свернуть многострочное утверждение в одну строку. Например:
for d in dir(request): print d
В вашем конкретном случае, однако, кажется, что либо print dir(request)
или же pp dir(request)
было бы достаточно.
В приглашении pdb сделайте следующее:
(Pdb) a = [1, 2, 3, 4]
(Pdb) for i in a:
*** SyntaxError: unexpected EOF while parsing (<stdin>, line 1)
(Pdb) import code
(Pdb) code.interact(local=locals())
>>> for i in a:
... print i
...
1
2
3
4
Это старый вопрос, но есть обновленный отладчик Python под названием
ipdb
.
Это позволяет иметь завершение табуляции, поддержку цвета и магические функции, а также все оригинальные функции
pdb
.
И это позволяет использовать многострочный
for loops
.