«SyntaxError: неожиданный EOF при синтаксическом анализе» при переборе словаря в PDB - PullRequest
8 голосов
/ 20 марта 2012

У меня есть pdb трассировка, установленная внутри GET запроса. Я хочу напечатать все атрибуты объекта запроса. Я пытаюсь следующее, в pdb:

(Pdb) request
<GET /foo HTTP/1.1>
(Pdb) for d in dir(request):
*** SyntaxError: unexpected EOF while parsing (<stdin>, line 1)

Я уверен, что здесь есть что-то фундаментальное, чего мне не хватает.

Ответы [ 2 ]

10 голосов
/ 20 марта 2012

Нельзя вводить многострочные операторы в pdb. Вы можете использовать команду commands , если кодовый блок должен выполняться в точке останова; help commands для получения дополнительной информации.

Вы также можете иногда свернуть многострочную инструкцию в одну строку. Например:

for d in dir(request): print d

В вашем конкретном случае, однако, кажется, что либо print dir(request), либо pp dir(request) будет достаточно.

1 голос
/ 21 сентября 2018

В приглашении 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
...