Saltar al contenido principal
🔒 Modo vista previa. Las primeras quince lecciones de Foundations son gratis; esta es Pro. Inicia un trial de 7 días para desbloquear el editor, las pistas AI y el resto del programa. Tarjeta requerida, cancela cuando quieras en Dashboard.Iniciar trial de 7 días →
← CursosSenior Deep-DivesMódulo 2 · Aspectos internos y rendimiento de CPythoncontextlib.contextmanagerpredict21 / 161
+75 XP
Tarea
📝 **Pregunta:** Predice el resultado exacto. \`track\` es un generador \`@contextmanager\` que imprime \`enter:\` / \`exit:\` y tiene un brazo \`except ValueError\`. El primer bloque \`with\` es una ejecución limpia. El segundo genera \`ValueError("oops")\` dentro del cuerpo: ¿el programa falla antes de \`print("done")\`, o \`with\` se lo traga? 📋 Elige la respuesta correcta. 💡 **Pista:** Vuelve a leer la teoría anterior si no estás seguro.
Predice la salida

Lee el código con atención

from contextlib import contextmanager


@contextmanager
def track(label):
    print(f"enter:{label}")
    try:
        yield label.upper()
    except ValueError as e:
        print(f"caught:{e}")
    finally:
        print(f"exit:{label}")


with track("a") as t:
    print(f"body:{t}")

with track("b") as t:
    print(f"body:{t}")
    raise ValueError("oops")

print("done")

¿Qué imprimirá el programa? Escribe aquí:

💬 Discusión

Sé el primero en hacer una pregunta o compartir un consejo.
Inicia sesión para unirte a la discusión. Leer es gratis.
Cargando discusión…