Blog em português onde relato a minha aprendizagem de Python. Sendo um blog, ele deve ser lido de baixo para cima e é escrito orientado a uma audiência com alguns conhecimentos de programação. Não tentando ser uma fonte exaustiva de conhecimento sobre Python, pode, no entanto, servir como crash course a esta linguagem.

Tuesday, August 11, 2009

Asserções

Sou um grande apologista da construção assert nas várias linguagens. Considero que é essencial e quase obrigatório fazer asserções para forçar que os diferentes componentes são utilizados de forma correcta (validar parâmetros, pré e pós condições de funções, etc.).
Em Python é possível fazer asserções com a construção assert condition [ , expression ]
O aparecimento de uma instrução assert implica que condition seja avaliada e, em caso de ser falsa, é lançada uma instância de AssertionError com o argumento expression (se existir). Repare-se que isto é um mecanismo mais potente do que aquele existente, por exemplo, em C pois é possível controlar o comportamento do programa (quando um assert falha), pois é uma excepção que pode ser apanhada e que não implica necessáriamente que o programa termine.

De notar também que este mecanismo apenas existe quando o código é executado em modo de debug (quando a flag -O não foi passada à máquina virtual).