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-DivesModule 6 · FAANG-2026 deep divestyping.Protocol — runtime_checkable's hidden holepredict109 / 161
+150 XP
Tarea
📝 **Tarea:** Predecir el resultado exacto. Se prueban cuatro clases con un protocolo \`Closeable\` verificable en tiempo de ejecución (un método: \`close()\`). \`Archivo\` es el caso canónico. \`Bolsa\` no tiene \`cierre\`. \`Stream\` define \`close\` sin heredar. \`Weird\` tiene \`close = 42\` - un int. ¿Qué dice isinstance para cada uno? 📋 Implemente la función anterior. Las pruebas se ejecutan automáticamente. 💡 **Pista:** Vuelve a leer la teoría si te quedas atascado.
Predice la salida

Lee el código con atención

from typing import Protocol, runtime_checkable


@runtime_checkable
class Closeable(Protocol):
    def close(self) -> None: ...


class File:
    def close(self):
        return "file"


class Bag:
    pass


class Stream:
    """Doesn't inherit Closeable; still passes by structural matching."""
    def close(self):
        return "stream"


class Weird:
    """Has a 'close' attribute, but it's an int."""
    close = 42


print(isinstance(File(), Closeable))
print(isinstance(Bag(), Closeable))
print(isinstance(Stream(), Closeable))
print(isinstance(Weird(), Closeable))

¿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…