assert, era RE: Sobrecargar función

Hernán Martínez Foffani hernan en orgmf.com.ar
Jue Feb 10 17:15:42 CET 2005


> Ahora lo tengo mas claro y funciona. Lo que no entiendo es lo de
> assert. Para que lo usas? He mirado la ayuda de Python pero no lo he
> entendido.

El assert es una instruccion de python que te permite definir
condiciones que deban cumplirse siempre.  En caso que la expresion
booleana sea True assert no hace nada y en caso de False dispara
una excepcion.

  >>> assert True
  >>> assert False
  Traceback (most recent call last):
    File "<stdin>", line 1, in ?
  AssertionError
  >>>

Se pueden usar como pre y post condiciones en métodos, funciones,
bloques de código pero sobre todo para especificar invariantes.
Es mas corto que escribir un if, mucho mas claro para el que lo
lee y como bonus la sentencia no se ejecuta en caso que el
intérprete se invoque con -O.

Para los puristas eso último hace que el assert no sea
particularmente apto para escribir pruebas unitarias. ;)

-Hernán.




Más información sobre la lista de distribución Python-es