Asserzioni in Python

Un'asserzione è un controllo di integrità che puoi attivare o disattivare quando hai finito di testare il programma.

Il modo più semplice per pensare a un'affermazione è paragonarla a un file raise-ifdichiarazione (o per essere più precisi, un'istruzione raise-if-not). Viene verificata un'espressione e se il risultato è falso, viene sollevata un'eccezione.

Le asserzioni vengono eseguite dall'istruzione assert, la nuova parola chiave di Python, introdotta nella versione 1.5.

I programmatori spesso inseriscono asserzioni all'inizio di una funzione per verificare l'input valido e dopo una chiamata di funzione per verificare l'output valido.

La dichiarazione di asserzione

Quando incontra un'istruzione assert, Python valuta l'espressione di accompagnamento, che si spera sia vera. Se l'espressione è falsa, Python solleva un'eccezione AssertionError .

La sintassi per assert è:

assert Expression[, Arguments]

Se l'asserzione fallisce, Python usa ArgumentExpression come argomento per AssertionError. Le eccezioni di AssertionError possono essere catturate e gestite come qualsiasi altra eccezione usando l'istruzione try-tranne, ma se non gestite, termineranno il programma e produrranno un traceback.

Esempio

Ecco una funzione che converte una temperatura da gradi Kelvin a gradi Fahrenheit. Poiché zero gradi Kelvin è freddo come diventa, la funzione si interrompe se vede una temperatura negativa -

#!/usr/bin/python

def KelvinToFahrenheit(Temperature):
   assert (Temperature >= 0),"Colder than absolute zero!"
   return ((Temperature-273)*1.8)+32

print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)

Quando il codice sopra viene eseguito, produce il seguente risultato:

32.0
451
Traceback (most recent call last):
   File "test.py", line 9, in <module>
      print KelvinToFahrenheit(-5)
   File "test.py", line 4, in KelvinToFahrenheit
      assert (Temperature >= 0),"Colder than absolute zero!"
AssertionError: Colder than absolute zero!