581
21.2
Debugging-Modus und optimierter Modus
21.2 Debugging-Modus und optimierter Modus
Tests von Bedingungen können algorithmisch aufwändig sein. Das bedeutet, dass sie die
Laufzeit des Programms spürbar verschlechtern können. Doch es gibt eine Abhilfe. Sie kön-
nen ein Programm im optimierten Modus starten. Dann werden
assert-Statements ein-
fach übersprungen.
Dazu wird das Skript im Kommando-Fenster des Betriebssystems (z.B. Eingabeaufforde-
rung bei Windows) mit der Option
–O (großes O) aufgerufen:
Testen Sie das folgende Skript.
Die
assert-Anweisung löst (im Debugging-Modus) einen Programmabbruch aus. Die
anschließende
print()-Anweisung kommt dann nicht mehr zum Zuge. Ein Start des Pro-
gramms im (voreingestellten) Debugging-Modus liefert deshalb dieses Ergebnis:
Nun starten Sie das Programm im optimierten Modus. Dazu müssen Sie ein Kommando-
Fenster verwenden. Wechseln Sie mit
cd in das Verzeichnis mit dem Testprogramm und
starten Sie das Programm mit
python –O:
Sie sehen, dass die
assert-Anweisung einfach übersprungen wurde und direkt die zweite
Programmzeile mit dem Druckbefehl ausgeführt wurde.
Nun sind aber manche Tests ziemlich komplex und gehen über eine einfache
assert-
Anweisung hinaus. Erinnern Sie sich an die Überprüfung der Nachbedingung für die Prim-
Traceback (most recent call last):
...
File ".../primfak.py", line 4, in primfak
assert type(zahl) == int and zahl > 0
AssertionError
python -O meinSkript.py
# debug_test.py
assert 1==2
print("Dieses Programm wurde nicht unterbrochen")
Traceback (most recent call last):
...
assert 1==2
AssertionError
> python -O debug_test.py
Dieses Programm wurde nicht unterbrochen

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.