Python: eine Programmierumgebung zum Kompilieren Zeile für Zeile?

1 Antwort

PyCharm ist sogar sehr gut, man muss sich nur einarbeiten.
Anstatt den Run Button zu drücken, kannst du auch das den Käfer daneben klicken, dann wird der Debugger gestartet. Aber zuerst musst du links im Editor die Code Zeile mit einem roten Punkt markieren, bei der der Debugger anfängt. Sobald du also den Debugger dann gestartet hast und das Programm bei der Zeile angekommen ist, wird das Programm pausiert und unten in deinem Debugger Fenster siehst du alle Variablen, du siehst sie auch im Code als Kommentar hinter der Variable und die aktive Zeile wird markiert. Dann kannst du verschiedene Aktionen benutzen, wie Resume, zur nächsten Zeile, Step in, etc.

Der Debugger von JetBrains ist übrigens auch einer der besten.

offeltoffel 
Fragesteller
 29.08.2016, 11:04

Danke, androhecker, für den Tipp!

Angenommen, ich habe einen sehr zeitintensiven Code am Anfang stehen und möchte dann mit dem Ergebnis rumspielen. Kann der Debug-Modus dann auch bis dahin laufen und ich kann nachher am Script rumarbeiten und sehen, wie sich das auf die Variablen auswirkt, ohne alles nochmal neu rechnen zu müssen?

model_result = ... # rechenintensiver Code
variante = model_result * 2

Ich setze den Breakpoint auf "variante = ", lasse das Script laufen. Wenn es fertig ist, sehe ich mir das Ergebnis von "variante" an, bin unzufrieden, ändere den Code in

variante = model_result * 2.4

und lasse mir dann "variante" nochmal anzeigen, ohne den ganzen Rattenschwanz von vorher nochmal rechnen zu müssen, weil alles noch im Memory gespeichert ist und wirklich nur diese Zeile nochmal gerechnet wird. Oder ich rechne eine Zeile vorher nochmal und schaue, wie sich das auf "variante" auswirkt usw.

Das Beispiel ist natürlich nicht sonderlich gut, aber es geht um das Prinzip. Danke!

0
androhecker  29.08.2016, 11:09

Ja, du setzt einfach den Debug Punkt (also den roten Punkt) auf diese Zeile, dann wird das Programm bis dahin einfach durchlaufen und wohlgemerkt VOR der Zeile stoppen. Wirklich viel langsamer wird der Code davor nicht sein.

0