Asserções em Python

Uma asserção é uma verificação de integridade que você pode ativar ou desativar quando terminar de testar o programa.

A maneira mais fácil de pensar em uma afirmação é compará-la a um raise-ifdeclaração (ou para ser mais preciso, uma declaração de aumento se não). Uma expressão é testada e, se o resultado for falso, uma exceção é levantada.

As asserções são realizadas pela instrução assert, a palavra-chave mais recente do Python, introduzida na versão 1.5.

Os programadores costumam colocar asserções no início de uma função para verificar se há uma entrada válida e depois de uma chamada de função para verificar se há uma saída válida.

A declaração de afirmação

Ao encontrar uma declaração assert, o Python avalia a expressão que a acompanha, o que é verdade. Se a expressão for falsa, o Python gerará uma exceção AssertionError .

A sintaxe para assert é -

assert Expression[, Arguments]

Se a asserção falhar, o Python usará ArgumentExpression como argumento para AssertionError. As exceções AssertionError podem ser capturadas e tratadas como qualquer outra exceção usando a instrução try-except, mas se não forem tratadas, encerrarão o programa e produzirão um traceback.

Exemplo

Aqui está uma função que converte uma temperatura de graus Kelvin em graus Fahrenheit. Uma vez que zero grau Kelvin é o mais frio possível, a função falha se vê uma 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 o código acima é executado, ele produz o seguinte resultado -

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!