В отладке моего кода я хочу использовать понимание списка. Однако, кажется, я не могу оценить понимание списка из отладчика, когда я внутри функции.
Я использую Python 3.4.
Script содержимое:
$ cat test.py
#!/usr/bin/python
def foo():
x = [1, 2, 3, 3, 4]
print(x)
foo()
Интерактивная отладка:
$ python3 -mpdb test.py
> /tmp/test.py(3)<module>()
-> def foo():
(Pdb) step
> /tmp/test.py(8)<module>()
-> foo()
(Pdb)
--Call--
> /tmp/test.py(3)foo()
-> def foo():
(Pdb)
> /tmp/test.py(4)foo()
-> x = [1, 2, 3, 3, 4]
(Pdb)
> /tmp/test.py(6)foo()
-> print(x)
(Pdb) p [x for _ in range(1)]
*** NameError: name 'x' is not defined
(Pdb) p x
[1, 2, 3, 3, 4]
Почему x
неизвестно пониманию списка? Как я могу оценить понимание списка из отладчика или добиться эквивалентного поведения? Это ошибка, или это какое-то фундаментальное ограничение для отладчика?