-
Gibt es ein Leistungs- oder Code-Wartungsproblem beim Verwenden von
assert
als Teil des Standardcodes, anstatt es nur für Debugging-Zwecke zu verwenden?Ist
assert x >= 0, 'x ist kleiner als null'
besser oder schlechter als
if x < 0: raise Exception('x ist kleiner als null')
-
Gibt es auch eine Möglichkeit, eine Geschäftsregel festzulegen wie
if x < 0 raise error
, die immer überprüft wird, ohne dastry/except/finally
, so dass, wenn zu irgendeinem Zeitpunkt im Codex
kleiner als 0 ist, ein Fehler ausgelöst wird, wie wenn Sie am Anfang einer Funktionassert x < 0
festlegen, überall innerhalb der Funktion, wox
kleiner als 0 wird, wird eine Ausnahme ausgelöst?
+1 für den letzten Absatz - obwohl du ausdrücklich erwähnen solltest, dass `assert` implizit `if __debug__` enthält und möglicherweise optimiert werden kann - wie John Mee's Antwort besagt.
66 Stimmen
-O und -OO Python-Parameter werden Ihre Behauptungen beseitigen. Das sollte Ihr Denken darüber anregen, wofür es gut ist.
6 Stimmen
Der Link von Thomasz Zielinski ist defekt, er lautet nun: mail.python.org/pipermail/python-list/2013-November/660568.html . Ich bin mir ziemlich sicher, dass pipermail eine instabile ID-Funktion hat. Ich habe andere Links innerhalb desselben pipermail gefunden, die auf dieselbe URL mit derselben Absicht verweisen.
9 Stimmen
Im Falle, dass mail.python.org/pipermail/python-list/2013-November/660568.html erneut verschoben wird, ist es archiviert unter archive.is/5GfiG. Der Titel des Beitrags lautet "When to use assert" und ist ein ausgezeichneter Beitrag (eigentlich ein Artikel) zu den bewährten Methoden für Python
assert
.0 Stimmen
Beantwortet das deine Frage? Was ist die Verwendung von "assert" in Python?
3 Stimmen
Ich sehe nie Leute in der Praxis Python-Skripte mit "-O" oder "-OO" ausführen.