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!