Ce face assert
assert conditie nu face nimic dacă condiția este adevărată și aruncă AssertionError (cu mesajul opțional) dacă este falsă. Este folosit pentru a prinde greșelile de programare devreme și în teste.
Python ignoră complet assert când este pornit cu optimizare (python -O). De aceea nu folosi assert pentru a valida datele primite de la utilizator; pentru asta folosește if și raise.
Exemple
Exemplul 1: Verificări interne și teste simple
def medie(note):
assert note, "Lista de note nu poate fi goală"
return sum(note) / len(note)
assert medie([8, 10]) == 9
print("Testul a trecut")
try:
medie([])
except AssertionError as e:
print("AssertionError:", e)
Rezultat
Testul a trecut
AssertionError: Lista de note nu poate fi goală
Greșeli frecvente
- Pui paranteze în jurul condiției și mesajului:
assert (x > 0, "mesaj"). Este un tuplu nevid, mereu adevărat, deci verificarea nu are loc niciodată (Python afișează și unSyntaxWarning).
Comenzi înrudite
raise: Aruncă (semnalează) o excepție, oprind execuția normală până când este prinsă cu except.try / except / else / finally: Prinde și tratează erorile (excepțiile), ca programul să nu se oprească brusc.