Python es un lenguaje de secuencias de comandos. Esto significa que un código de Python se ejecuta línea por línea con la ayuda de un intérprete de Python. Cuando un intérprete de Python encuentra un carácter de fin de archivo, no puede recuperar ningún dato del script. Este carácter EOF (fin de archivo) es el mismo que el EOF que informa el final del archivo mientras lee datos de un archivo en Python.
Hay un carácter EOF presente al final de cada secuencia de comandos de Python que indica al intérprete que detenga la ejecución del código. Mientras trabajamos en una entrada estándar conectada a un dispositivo tty, podemos producir un resultado similar con CTRL+D en UNIX y CTRL+Z, ENTER en Windows.
Considere este código simple que toma un número como entrada del usuario y devuelve el doble de ese número.
Python3
a = int(input("Enter number: ")) # waiting for user input... print("Twice of the number: ", 2 * a)
Intente presionar el carácter EOF (dependiendo de su sistema operativo) mientras el programa espera la entrada del usuario. El programa terminará tan pronto como encuentre el carácter EOF como este:
Tenga en cuenta que el programa lanza una excepción EOFError cuando encuentra EOF antes de que finalice el programa.
¿Cómo detectar la salida del script?
Podemos usar el módulo atexit para detectar la salida del script. El siguiente código detecta la salida del script usando la función register() del módulo atexit.
Sintaxis: atexit.register(fun, *args, **kwargs)
Parámetros: Primero se menciona el nombre de la función y luego se pasan los argumentos para esa función. Los parámetros se separan usando ‘, ‘.
Retorno: esta función devuelve la diversión llamada y, por lo tanto, se puede rastrear la llamada.
El método atexit.register() toma una función como argumento que se ejecutará al salir del script.
Python3
import atexit a = 5 print("Twice of a:", a*2) atexit.register(print, "Exiting Python Script")
Producción:
Twice of a: 10 Exiting Python Script
Publicación traducida automáticamente
Artículo escrito por sareendivyansh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA