4.3 Context Manager
En Python existe una construcción muy útil llamada context manager, que se utiliza a través de la palabra clave with.
El objetivo de un context manager es gestionar recursos de forma automática y segura, garantizando que se liberen correctamente incluso si ocurre un error durante su uso.
Este mecanismo se basa en entrar en un “contexto” con __enter__() y salir de él con __exit__(), lo cual permite automatizar tareas como:
- cerrar archivos
- liberar conexiones
- realizar
commitorollbacken bases de datos - liberar bloqueos de hilos
- limpiar recursos temporales
Sin un context manager, el programador debe encargarse de abrir y cerrar recursos manualmente.
Por ejemplo, al trabajar con archivos:
Si ocurre un error entre open() y close(), el archivo podría quedar abierto, generando fugas de recursos o comportamientos inesperados.
El uso de with garantiza que el recurso se cierre automáticamente cuando termina el bloque, incluso si ocurre una excepción.
Aquí:
- se abre el archivo
- se ejecuta el bloque indentado
- al salir del bloque, Python llama automáticamente a
f.close()
Esto hace que el código sea más seguro, limpio y fácil de leer.
En este caso, open() devuelve un objeto archivo que actúa como context manager.
Al finalizar el bloque, Python ejecuta automáticamente el cierre del archivo.