In Debuggen von meinem Code, ich möchte ein Listenverständnis verwenden. Es scheint jedoch, dass ich ein Listenverständnis nicht vom Debugger aus beurteilen kann, wenn ich mich in einer Funktion befinde.List Verständnis Verständnis Fehler von Python Debugger
Ich benutze Python 3.4.
Script Inhalt:
$ cat test.py
#!/usr/bin/python
def foo():
x = [1, 2, 3, 3, 4]
print(x)
foo()
Interactive Debugging:
$ 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]
Warum ist x
unbekannt in der Liste Verständnis? Wie kann ich ein Listenverständnis vom Debugger aus bewerten oder ein gleichwertiges Verhalten erreichen? Ist das ein Fehler oder ist es eine Art grundsätzliche Einschränkung für den Debugger?
@Veedrac Huh, ich habe gerade in einem kleinen Testskript realisiert, dass es dort funktioniert. Ich werde etwas graben und mit einem kleinen ausführbaren Script zurückkommen! – gerrit
@Veedrac Edited um genau das hinzuzufügen. – gerrit
Einfacheres Beispiel: 'p (Lambda: x)()' – Veedrac