22.2 Zusicherungen – assert 

Mithilfe des Schlüsselworts assert lassen sich Zusicherungen in ein Python-Programm integrieren. Durch das Schreiben einer assert-Anweisung legt der Programmierer eine Bedingung fest, die für die Ausführung des Programms essenziell ist und die bei Erreichen der assert-Anweisung zu jeder Zeit True ergeben muss. Wenn die Bedingung einer assert-Anweisung False ergibt, wird eine AssertionError-Exception geworfen. In der folgenden Sitzung im interaktiven Modus wurden mehrere assert-Anweisungen eingegeben:
>>> import math
>>> assert math.log(1) == 0
>>> assert math.sqrt(4) == 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError:
>>> assert math.sqrt(9) == 3
>>>
Die assert-Anweisung ist damit ein praktisches Hilfsmittel zum Aufspüren von Fehlern und ermöglicht es, den Programmlauf zu beenden, wenn bestimmte Voraussetzungen nicht erfüllt sind. Häufig prüft man an Schlüsselstellen im Programm mit assert, ob alle Referenzen die erwarteten Werte referenzieren, um eventuelle Fehlberechnungen rechtzeitig erkennen zu können.
Beachten Sie, dass assert-Anweisungen üblicherweise nur während der Entwicklung eines Programms benötigt werden und in einem fertigen Programm eher stören würden. Deswegen werden assert-Anweisungen nur dann ausgeführt, wenn die globale Konstante __debug__ den Wert True referenziert. Diese Konstante ist nur dann False, wenn der Interpreter mit der Kommandozeilenoption -O gestartet wurde. Wenn die Konstante __debug__ den Wert False referenziert, werden assert-Anweisungen ignoriert und haben damit keinen Einfluss mehr auf die Laufzeit Ihres Programms.
[»] Hinweis
Beachten Sie, dass Sie den Wert von __debug__ im Programm selbst nicht verändern dürfen, sondern nur über die Kommandozeilenoption -O bestimmen können, ob assert-Anweisungen ausgeführt oder ignoriert werden sollen.