Wenn ich in Python mit IPython debuggen, habe ich manchmal einen Break-Point und ich möchte eine Variable untersuchen, die derzeit ein Generator ist. Der einfachste Weg, den ich mir vorstellen kann, ist, ihn in eine Liste zu konvertieren, aber ich weiß nicht genau, wie das in einer Zeile in ipdb
funktioniert, da ich Python so neu bin.Konvertieren Generatorobjekt in die Liste zum Debuggen
60
A
Antwort
102
Rufen Sie einfach list
am Generator an.
lst = list(gen)
lst
Beachten Sie, dass dies Auswirkungen auf den Generator hat, der keine weiteren Elemente zurückgibt.
Sie können list
in IPython auch nicht direkt aufrufen, da ein Konflikt mit einem Befehl zum Auflisten von Codezeilen auftritt.
zu dieser Datei Getestet:
def gen():
yield 1
yield 2
yield 3
yield 4
yield 5
import ipdb
ipdb.set_trace()
g1 = gen()
text = "aha" + "bebe"
mylst = range(10, 20)
die bei der Ausführung:
$ python code.py
> /home/javl/sandbox/so/debug/code.py(10)<module>()
9
---> 10 g1 = gen()
11
ipdb> n
> /home/javl/sandbox/so/debug/code.py(12)<module>()
11
---> 12 text = "aha" + "bebe"
13
ipdb> lst = list(g1)
ipdb> lst
[1, 2, 3, 4, 5]
ipdb> q
Exiting Debugger.
Allgemeine Methode Funktion/Variable/Debugger Name
Es gibt Debuggerkommandos p
und pp
in Konflikt zu entkommen, dass wird print
und prettyprint
jeder Ausdruck ihnen folgen.
So könnte man es wie folgt verwenden:
$ python code.py
> /home/javl/sandbox/so/debug/code.py(10)<module>()
9
---> 10 g1 = gen()
11
ipdb> n
> /home/javl/sandbox/so/debug/code.py(12)<module>()
11
---> 12 text = "aha" + "bebe"
13
ipdb> p list(g1)
[1, 2, 3, 4, 5]
ipdb> c
Es gibt auch einen exec
Befehl, genannt durch Ihren Ausdruck mit !
prefixing, dem Debugger Ihren Ausdruck als Python ein nehmen zwingt.
ipdb> !list(g1)
[]
Weitere Details finden help p
, help pp
und help exec
in Debugger, wenn.
Verwandte Themen
- 1. Python: Attribute für ein Generatorobjekt
- 2. Python: Konvertieren Liste mit Indizes Zum Wörterbuch
- 3. .NET generische Liste in F # -Liste konvertieren
- 4. Java - TreeSet in die Liste konvertieren
- 5. YII-Protokollierung zum Debuggen
- 6. Konvertieren der Liste der Zeichenfolge in die Liste der Ganzzahl
- 7. #define LOG_MSG (...) zum Debuggen
- 8. Vektor in Liste konvertieren
- 9. Definition der Klassenmethode mit R5-Generatorobjekt anzeigen
- 10. Liste konvertieren [Double] in Liste [String]
- 11. Linker-Skripte: Strategien zum Debuggen?
- 12. Beliebte Techniken zum Debuggen .htaccess
- 13. LINQ in C# zum Konvertieren einer Liste <string> in eine Liste <char>
- 14. Doker Container zum Debuggen duplizieren
- 15. Liste der Liste in Liste in Java konvertieren
- 16. Tool zum Debuggen von Makefiles
- 17. Commons-Logging zum Debuggen in Cassandra
- 18. beenden, abbrechen, zum Debuggen schlafen?
- 19. Werkzeuge zum Debuggen von Xslt
- 20. Konvertieren geschachtelte Iterable in Liste
- 21. Struct in NSLog zum Debuggen ausgeben?
- 22. Konvertieren Iterator Liste ändert die Iterator
- 23. WebStorm versucht, Chrome zum Debuggen zu öffnen
- 24. konvertieren HTML-Liste in JSON
- 25. Effiziente Möglichkeit, eine Liste zu konvertieren Zum Wörterbuch
- 26. Linq zum Objekt: ToList kann nicht auf generische Liste konvertieren
- 27. Debugger zum Debuggen meines OS
- 28. Importieren von PMML 3.2-Modell zum Debuggen in Python und Konvertieren zu 4.2
- 29. Schnellste Möglichkeit zur Verwendung der Reflektion zum Konvertieren des Datenreaders in die Liste
- 30. nicht bestehen, nicht die weiß Liste Gerät/ApplicationSession debuggen starten