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 1 · Concurrencia y aspectos internos asincrónicosMetaclasespredict5 / 161
+100 XP
Tarea
📝 **Tarea:** Predecir el resultado exacto. \`Meta.__new__\` imprime \`meta_new:<nombre>\` a medida que se construye cada clase. \`Base.__init_subclass__\` imprime \`init_sub:<nombre>\` y lo agrega a \`registry\`. Dos preguntas: (1) ¿Se activa \`init_sub\` cuando se crea \`Base\`? (2) Dentro de \`Meta.__new__\`: ¿se ejecuta \`print\` antes o después de que \`super().__new__\` construya la clase? 📋 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

class Meta(type):
    def __new__(mcs, name, bases, ns):
        print(f"meta_new:{name}")
        return super().__new__(mcs, name, bases, ns)


class Base(metaclass=Meta):
    registry = []
    def __init_subclass__(cls, **kwargs):
        print(f"init_sub:{cls.__name__}")
        Base.registry.append(cls.__name__)


class A(Base):
    pass


class B(Base):
    pass


print(Base.registry)

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