Naar hoofdinhoud
🔒 Voorbeeldmodus. De eerste vijftien Foundations-lessen zijn gratis; deze is Pro. Start een 7-daagse trial om de editor, AI-hints en de rest van het curriculum te ontgrendelen. Kaart vereist, op elk moment opzegbaar in Dashboard.Start 7-daagse trial →
← CursussenSenior Deep-DivesModule 1 · Gelijktijdigheid en asynchrone interne processenMetaklassenpredict5 / 161
+100 XP
Opdracht
📝 **Taak:** Voorspel de exacte uitvoer. \`Meta.__new__\` drukt \`meta_new:<naam>\` af terwijl elke klasse wordt gebouwd. \`Base.__init_subclass__\` drukt \`init_sub:<naam>\` af en voegt het toe aan het \`register\`. Twee vragen: (1) Wordt \`init_sub\` geactiveerd wanneer \`Base\` zelf wordt gemaakt? (2) Binnen \`Meta.__new__\` — wordt \`print\` uitgevoerd voor of nadat \`super().__new__\` de klasse bouwt? 📋 Implementeer bovenstaande functie. Tests worden automatisch uitgevoerd. 💡 **Hint:** Herlees de theorie als je vastloopt.
Voorspel uitvoer

Lees de code zorgvuldig

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)

Wat zal het programma uitprinten? Schrijf hier:

💬 Discussie

Wees de eerste — stel een vraag of deel een tip.
Log in om mee te doen aan de discussie. Lezen is gratis.
Discussie laden…