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!