Gestores de contexto (sentencias with)
Descubra el potencial de los gestores de contexto para administrar recursos
Gestores de contexto (sentencias with) es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 3 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 5 lecciones en total.
Introducción a los gestores de contexto
Introducción a los gestores de contexto
Los gestores de contexto de Python le ayudan a gestionar recursos como archivos, conexiones de red y conexiones de bases de datos. Garantizan que los recursos se adquieran y liberen correctamente, incluso si se produce un error.
En esta lección, aprenderá a usar y crear gestores de contexto mediante la instrucción with.

¿Qué es un gestor de contexto?
¿Qué es un gestor de contexto?
Un gestor de contexto es una construcción que permite asignar y liberar recursos de manera eficiente. Usa la instrucción with para envolver el código de gestión de recursos.
# Using a context manager with a file
with open("example.txt", "r") as file:
content = file.read()
print(content) # File is automatically closed after the block¿Por qué usar gestores de contexto?
¿Por qué usar gestores de contexto?
Los gestores de contexto le ayudan a:
- Garantizar la correcta limpieza de los recursos.
- Reducir la probabilidad de fugas de recursos.
- Escribir código más limpio y legible.
Gestores de contexto integrados
Gestores de contexto integrados
Python incluye varios gestores de contexto integrados, como:
open: Gestiona las operaciones con archivos.decimal.localcontext: Gestiona la configuración de precisión de las operaciones decimales.
Creación de un gestor de contexto personalizado
Creación de un gestor de contexto personalizado
Puede crear un gestor de contexto personalizado mediante una clase con los métodos __enter__ y __exit__:
# Custom context manager class
class CustomManager:
def __enter__(self):
print("Entering the context")
return self
def __exit__(self, exc_type, exc_value, traceback):
print("Exiting the context")
with CustomManager() as manager:
print("Inside the context")Gestión de excepciones en gestores de contexto
Gestión de excepciones en gestores de contexto
Los gestores de contexto personalizados pueden gestionar excepciones mediante el método __exit__:
# Handling exceptions in a context manager
class ExceptionManager:
def __enter__(self):
print("Entering the context")
return self
def __exit__(self, exc_type, exc_value, traceback):
if exc_type:
print(f"An exception occurred: {exc_value}")
print("Exiting the context")
return True # Suppresses the exception
with ExceptionManager():
raise ValueError("Something went wrong")Uso de Contextlib
Uso de Contextlib
El módulo contextlib proporciona utilidades para simplificar la creación de gestores de contexto:
# Using contextlib to create a context manager
from contextlib import contextmanager
@contextmanager
def custom_context():
print("Entering the context")
yield
print("Exiting the context")
with custom_context():
print("Inside the context")Prácticas recomendadas para gestores de contexto
Prácticas recomendadas para gestores de contexto
Estas son algunas prácticas recomendadas:
- Use gestores de contexto integrados siempre que sea posible.
- Gestione correctamente las excepciones en los gestores de contexto personalizados.
- Use el módulo
contextlibpara una sintaxis más sencilla.
Errores habituales con los gestores de contexto
Errores habituales con los gestores de contexto
Estos son algunos errores que debe evitar:
- No usar
withpara gestionar recursos. - No implementar correctamente
__exit__en los gestores de contexto personalizados. - Ignorar las excepciones en
__exit__.
¿Qué hemos aprendido?
¿Qué hemos aprendido?
En esta lección, ha aprendido:
- Qué son los gestores de contexto y cómo funcionan con la instrucción
with. - Cómo crear gestores de contexto personalizados mediante
__enter__y__exit__. - Cómo usar el módulo
contextlibpara simplificar la creación de gestores de contexto.
¡Buen trabajo! Pasemos al siguiente tema.

Preguntas frecuentes
¿La lección «Gestores de contexto (sentencias with)» es gratis?
Sí — el texto completo de «Gestores de contexto (sentencias with)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 5 lecciones en total.
¿Qué aprenderé en «Gestores de contexto (sentencias with)»?
Descubra el potencial de los gestores de contexto para administrar recursos Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 5.
¿Cuánto tiempo toma la lección «Gestores de contexto (sentencias with)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Decoradores
- Generadores
- Gestores de contexto (sentencias with)
- Comprensiones (de listas, conjuntos y diccionarios)
- Iteradores e iterables