Want to create interactive content? It’s easy in Genially!

Get started free

5100_UD02_3.4

CESUR

Created on February 2, 2026

Start designing with a free template

Discover more than 1500 professional designs like these:

Puzzle Diagram

Gear Diagram

Square Timeline Diagram

Timeline Diagram

Timeline Diagram 3

Timeline Diagram 4

Timeline Diagram 2

Transcript

Cualidades negativas

Cualidades positivas

Cualidades positivas

Gestión de recursos

Constructores

Haz clic para ampliar información

Para una gestión de recursos de verdad profesional, lo que se usa es el protocolo de gestión de contexto con los métodos _enter_() y _exit_(). Esto es lo que te permite usar la sentencia with. El método __enter__ prepara el recurso al entrar en el bloque, y _exit_ se asegura de limpiarlo todo al salir. La gran ventaja del with es que el método _exit_ se ejecuta sí o sí. Da igual si el código termina bien, si hay un return inesperado o si salta una excepción catastrófica; Python garantiza que la limpieza se haga. Para una base de datos, esto es la diferencia entre dejar una conexión colgada o cerrarla correctamente. Imagina una clase ConexionBD. En el _init_ podrías guardar las credenciales, pero lo ideal es que el _enter_ abra la conexión y el _exit_ haga el commit de las transacciones y cierre la sesión. Así evitas las famosas fugas de conexiones que acaban tumbando servidores. Además, los constructores permiten virguerías como la carga diferida (o lazy loading). En lugar de cargar megabytes de datos en el _init_, simplemente preparas el terreno y solo traes la información cuando el código realmente la pide por primera vez. Esto hace que tu aplicación arranque mucho más rápido y no gaste recursos innecesarios.

El método _init_() es el constructor. Se ejecuta en cuanto creas la instancia y su trabajo es dejar al objeto listo y en un estado válido. Aquí es donde validas los parámetros y, si algo no cuadra, lanzas una excepción para evitar que el objeto nazca "defectuoso". Por ejemplo, si una clase necesita un archivo para funcionar, el _init_() debería comprobar que el archivo existe. Por otro lado, está el método _del_(), que hace de destructor. En teoría, se llama justo antes de que el recolector de basura de Python elimine el objeto. Es el sitio para cerrar conexiones o liberar memoria manual. El problema es que en Python no puedes fiarte al 100% de _del_(), no hay garantías de cuándo se va a ejecutar