La declaración de afirmación de Python

En este artículo, examinaremos cómo usar la declaración de afirmación en Python. En Python, la declaración de afirmación se usa para validar si una condición es verdadera o no...

En este artículo, examinaremos cómo usar la declaración assert en Python.

En Python, la declaración assert se usa para validar si una condición es verdadera o no, usando la sintaxis:

1
assert <condition>

Si la condición se evalúa como Verdadero, el programa continúa ejecutándose como si nada fuera de lo normal. Sin embargo, si la condición se evalúa como False, el programa termina con AssertionError.

1
>>> assert True

No sucede nada cuando se ejecuta el código anterior, ya que la condición se evalúa como Verdadero. Alternativamente, la condición en el siguiente ejemplo se evalúa como Falso:

1
2
3
4
>>> assert False
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError

Para mayor claridad, podemos agregar un mensaje de error personalizado a la salida de la aserción de la siguiente manera:

1
2
3
4
>>> assert False, "This is a custom assertion message!"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError: This is a custom assertion message!

La declaración de afirmación es útil cuando queremos verificar que una variable en nuestro código asuma el valor correcto y terminar el programa si no lo hace. Esto ayuda a evitar modos de falla silenciosos, que pueden ocurrir si el programa continúa ejecutándose con valores erróneos y puede ser difícil de depurar.

Aquí hay un ejemplo de una declaración de afirmación con una condición más significativa. Supongamos que queremos asegurarnos de que una entrada de variable de bandera por parte del usuario se haya establecido en uno de varios valores correctos. Si no, terminaremos la ejecución del programa. Podemos hacer eso de la siguiente manera:

1
2
3
>>> flag = input("Enter a flag (y/n): ")
Enter a flag (y/n): y
>>> assert flag == "y" or flag == "n", "Invalid flag, must be 'y' or 'n'"

En el ejemplo anterior, el usuario ingresó un valor válido para la bandera, por lo que no se generan errores. Sin embargo, en el siguiente ejemplo, se lanza una afirmación debido a una entrada de usuario no válida:

1
2
3
4
5
6
>>> flag = input("Enter a flag (y/n): ")
Enter a flag (y/n): b
>>> assert flag == "y" or flag == "n", "Invalid flag, must be 'y' or 'n'"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError: Invalid flag, must be 'y' or 'n'

Cuando se usa de esta manera, su código debe detectar el error generado y mostrar el mensaje de error personalizado como salida al usuario para que pueda corregir su respuesta. Esto tiene una gran cantidad de usos en los programas de Python, ya sea afirmando entradas a una ruta API o verificando que un recurso descargado contenga la información adecuada.

Otro punto importante a tener en cuenta es que cuando está ejecutando el intérprete de Python o el script de Python desde la línea de comandos, el indicador –O se puede usar para ejecutar el programa sin imponer ninguna afirmación. Esto ignorará las declaraciones de afirmación desactivando el modo de depuración del intérprete de Python. Tenga cuidado al usar esto, ya que puede hacer que su código acepte entradas no válidas o peligrosas.

Sobre el autor

Este artículo fue escrito por Jacob Stopak, un consultor y desarrollador de software apasionado por ayudar a otros a mejorar sus vidas a través del código. Jacob es el creador de Tarjeta de código, una herramienta conveniente para que los desarrolladores busquen, copien y peguen fragmentos de código comunes.

Licensed under CC BY-NC-SA 4.0