En este artículo, vamos a ver cómo existe un script de Python.
Salir de un script de Python se refiere al proceso de finalización de un proceso de Python activo. De una forma más práctica, generalmente es una llamada a una función (o destructor) de las rutinas de salida del programa. Este proceso se realiza implícitamente cada vez que una secuencia de comandos de python completa la ejecución (o se queda sin código ejecutable), pero también se puede invocar mediante el uso de ciertas funciones. En este artículo, veremos cómo salir de un programa de python, realizar una tarea antes de salir del programa y salir del programa mientras se muestra un mensaje personalizado (de error).
Salir de una aplicación de Python
Existen varias formas de salir de una aplicación de python. El siguiente artículo ha explicado algunos de ellos con gran detalle. Una lectura completa del mismo educaría a los usuarios sobre cuándo usar qué método y cuál es el más adecuado para su caso de uso particular. En general, su funcionalidad es más o menos la misma que es salir del programa python. Algunas funciones lo hacen correctamente (llamando a rutinas de limpieza, vaciando búferes, cerrando objetos de archivo, etc.) y otras lo hacen brutalmente (sin los pasos mencionados anteriormente). A menudo es mejor usar métodos incorporados porque solo se requiere que se llamen donde sea necesario.
Ejemplo:
Python3
print("this is the first statement") exit() print("this is the second statement")
Producción:
this is the first statement
Detección de salida de script
A veces es necesario realizar ciertas tareas antes de que finalice la secuencia de comandos de python. Para eso, se requiere detectar cuando el script está a punto de salir. atexit es un módulo que se utiliza para realizar esta misma tarea. El módulo se utiliza para definir funciones para registrar y eliminar funciones de limpieza. Las funciones de limpieza se llaman después de que se haya ejecutado el código. Las funciones de limpieza predeterminadas se usan para limpiar los residuos creados por la ejecución del código, pero las usaríamos para ejecutar nuestro código personalizado.
En el siguiente código estaríamos definiendo (y registrando) una función que sería llamada al finalizar el programa. Primero, se importa el módulo atexit. Luego se define la función exit_handler(). Esta función contiene una declaración de impresión. Posteriormente esta función se registra pasando el objeto función a la función atexit.register() . ¡Al final, hay una llamada a la función de impresión para mostrar GFG! en la salida. En la salida, la primera línea es la salida de la última declaración de impresión en el código. La segunda línea contiene la salida de la función exit_handler que se invoca durante la ejecución del código (como una función de limpieza).
No todos los tipos de salidas son manejados por el módulo atexit.
Ejemplo:
Python3
import atexit def exit_handler(): print('My application is ending!') atexit.register(exit_handler) print('GFG!')
Producción:
GFG My application is ending!
Salir sin errores
A veces nos interesa solo la ejecución o finalización del programa en lugar de los errores que se encuentran en él. Esto es posible si podemos detectar cualquier excepción o error que se encuentre durante la ejecución. Esto es posible gracias a la cláusula except: que se encuentra dentro de un bloque genérico try-except. Estaríamos haciendo uso del hecho de que una simple excepción puede capturar no solo excepciones sino incluso ciertas interrupciones y errores encontrados durante la ejecución del bloque de prueba.
Una cláusula de excepción desnuda generalmente no es recomendable en el código práctico. La razón es que también oculta varios tipos de errores producidos durante el código. Este comportamiento puede hacer que la depuración del código sea un poco agitada. Por lo tanto, debe usarse con precaución y solo cuando el código en la cláusula de prueba no sea propenso a errores (lo cual no es una suposición plausible en la mayoría de los casos).
Ejemplo:
Python3
def main(): asdfgh print("HELLO WORLD!") if __name__ == "__main__": try: main() except: print("Gotcha!")
Producción:
Gotcha!
Salir con errores
Generalmente, cuando un programa de Python encuentra un error, lo muestra en la pantalla de la consola. Pero a veces nos interesa salir de la aplicación mientras mostramos un texto que indica un posible error que podría haber ocurrido. Este proceso también podría usarse para salir del programa y mostrar algún texto al final. En el siguiente código, saldremos del programa python después de mostrar algo de texto.
Aquí se podría proporcionar una string o un número entero como argumento para la función exit(). Si el argumento es una string (que indica un mensaje de error, etc.), se generará después de la ejecución del programa. Si es un número entero, debería ser un código de salida POSIX.
Ejemplo:
Python3
print("Hello world!") exit("__PUT_ERROR_MSG_HERE__")
Producción:
Hello world! __PUT_ERROR_MSG_HERE__