Controladores de salida de Python (atexit)

atexit es un módulo en python que contiene dos funciones register() y unregister(). La función principal de este módulo es realizar una limpieza al finalizar el intérprete. Las funciones que están registradas se ejecutan automáticamente al finalizar el intérprete. Cada vez que un programa es eliminado por una señal no manejada por Python, cuando se llama a os.exit(), o cuando se detecta un error interno fatal de Python, las funciones registradas a través de este módulo no se ejecutan.

  • registrarse(): la función de registro toma una función como argumento que se ejecutará en la terminación del intérprete. Si hay varias funciones pasadas como argumentos, por ejemplo (fun1(), fun2()..), entonces la ejecución será en orden inverso (…fun2(), fun1()). La ejecución se produce en el concepto de último en entrar, primero en salir (LIFO).

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.

  • Nota: Esta función también se puede utilizar como decorador. 

# Ejemplo 1: 

Python3

# Python program to demonstrate
# atexit module
 
 
import atexit
 
names = ['Geeks', 'for', 'Geeks']
 
def hello(name):
    print (name)
 
for name in names:
 
    # Using register()
    atexit.register(hello, name)

Producción :

Geeks
for
Geeks

# Ejemplo 2: Uso de register como decorador 

Python3

# Python program to demonstrate
# atexit module
 
 
import atexit
 
# Using register() as a decorator
@atexit.register
def goodbye():
    print("GoodBye.")

Producción :

GoodBye.
  • unregister(): La función unregister() elimina la diversión especificada de las funciones definidas en el programa. Proporciona la seguridad de que no se llamará a la diversión cuando el intérprete termine.

Sintaxis: atexit.unregister(fun) 

Parámetros: La función puede contener o no algún parámetro. Si hay alguno presente, se debe especificar el nombre divertido. 

Retorno: Sin retorno.

Ejemplo: 

Python3

# Python program to demonstrate
# atexit module
 
 
import atexit
 
names = ['Geeks', 'for', 'Geeks']
 
def hello(name):
    print (name)
 
for name in names:
 
    # Using unregister()
    atexit.unregister(hello)

Producción :

No Output

Publicación traducida automáticamente

Artículo escrito por HarshitaSahai y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *