Preskoči na glavni sadržaj
🔒 Način pregleda. Prvih petnaest Foundations lekcija je besplatno; ova je Pro. Pokrenite 7-dnevni trial da otključate editor, AI savjete i ostatak programa. Kartica obavezna, otkažite bilo kada u Dashboard.Pokreni 7-dnevni trial →
← KolegijiSenior Deep-DivesModul 1 · Konkurentnost i asinkroni interniMetaklasepredict5 / 161
+100 XP
Zadatak
📝 **Zadatak:** Predvidite točan rezultat. \`Meta.__new__\` ispisuje \`meta_new:<name>\` kako se svaka klasa gradi. \`Base.__init_subclass__\` ispisuje \`init_sub:<name>\` i dodaje u \`registar\`. Dva pitanja: (1) Pali li \`init_sub\` kada se stvori sama \`Base\`? (2) Unutar \`Meta.__new__\` — pokreće li se \`print\` prije ili nakon što \`super().__new__\` izgradi klasu? 📋 Implementirajte gornju funkciju. Testovi se pokreću automatski. 💡 **Savjet:** Ponovno pročitajte teoriju ako zapnete.
Predvidi izlaz

Pažljivo pročitaj kod

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)

Što će program ispisati? Napiši ovdje:

💬 Rasprava

Budi prvi — postavi pitanje ili podijeli savjet.
Prijavi se kako bi se pridružio raspravi. Čitanje je besplatno.
Učitavanje rasprave…