Список отображения Python3 PDB

display Команда pdb, кажется, показывает только выражение, когда вся переменная назначена.

pass
foo = [1, 2, 3]
foo[0] = 8
foo.append(7)
pass

Вывод, который я получаю при запуске вышеуказанного кода с python3 -m pdb bar.py а затем войти display foo является:

> bar.py(2)<module>()
-> foo = [1, 2, 3]
(Pdb) display foo
display foo: ** raised NameError: name 'foo' is not defined **
(Pdb) n
> bar.py(3)<module>()
-> foo[0] = 8
display foo: [1, 2, 3]  [old: ** raised NameError: name 'foo' is not defined **]
(Pdb) 
> bar.py(4)<module>()
-> foo.append(7)
(Pdb) 
> bar.py(5)<module>()
-> pass
(Pdb) foo
[8, 2, 3, 7]
(Pdb) 

Ожидается NameError и первый вывод отображения. Однако кажется, что дисплей не улавливает, что foo изменилось, когда был изменен его первый элемент или когда мы добавили 7.

Есть ли способ указать pdb перечислить эти изменения? Кажется, что display str(foo) делает работу, но мне интересно, если есть лучшее решение.

1 ответ

Да, способ отслеживать эти изменения для вас 'p' команда вместо Смотрите этот пример

> /home/maksim/Projects/Python/basic/test.py(2)<module>()
-> foo = [1, 2, 3]
(Pdb) s;;l;;p foo
> /home/maksim/Projects/Python/basic/test.py(3)<module>()
-> foo[0] = 8
  1     pass
  2     foo = [1, 2, 3]
  3  -> foo[0] = 8
  4     foo.append(7)
  5     pass
  6     
  7     
  8     
[EOF]
[1, 2, 3]
(Pdb) s;;l;;p foo
> /home/maksim/Projects/Python/basic/test.py(4)<module>()
-> foo.append(7)
  1     pass
  2     foo = [1, 2, 3]
  3     foo[0] = 8
  4  -> foo.append(7)
  5     pass
  6     
  7     
  8     
[EOF]
[8, 2, 3]
(Pdb) s;;l;;p foo
> /home/maksim/Projects/Python/basic/test.py(5)<module>()
-> pass
  1     pass
  2     foo = [1, 2, 3]
  3     foo[0] = 8
  4     foo.append(7)
  5  -> pass
  6     
  7     
  8     
[EOF]
[8, 2, 3, 7]
(Pdb) s;;l;;p foo
--Return--
> /home/maksim/Projects/Python/basic/test.py(5)<module>()->None
-> pass
  1     pass
  2     foo = [1, 2, 3]
  3     foo[0] = 8
  4     foo.append(7)
  5  -> pass
  6     
  7     
  8     
[EOF]
[8, 2, 3, 7]
(Pdb) 
Другие вопросы по тегам