Prejsť na hlavný obsah
🔒 Režim náhľadu. Prvých pätnásť lekcií Foundations je zadarmo; táto je Pro. Spustite 7-dňový trial pre odomknutie editora, AI nápovied a zvyšku kurzu. Karta vyžadovaná, zrušte kedykoľvek v Dashboard.Spustiť 7-dňový trial →
← KurzySenior Deep-DivesModul 1 · Concurrency & Async InternalsMetatriedypredict5 / 161
+100 XP
Úloha
📝 **Úloha:** Predpovedajte presný výstup. \`Meta.__new__\` vypíše \`meta_new:<name>\` pri zostavovaní každej triedy. \`Base.__init_subclass__\` vypíše \`init_sub:<meno>\` a pripojí sa k \`registru\`. Dve otázky: (1) Spustí sa \`init_sub\`, keď sa vytvorí samotná \`Základňa\`? (2) Vo vnútri \`Meta.__new__\` — beží \`print\` pred alebo po vytvorení triedy \`super().__new__\`? 📋 Implementujte funkciu vyššie. Testy prebiehajú automaticky. 💡 **Tip:** Znova si prečítajte teóriu, ak sa zaseknete.
Predpovedz výstup

Prečítaj kód pozorne

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)

Čo program vypíše? Napíš sem:

💬 Diskusia

Buď prvý — polož otázku alebo sa podeľ o tip.
Prihlás sa aby si sa zapojil do diskusie. Čítanie je zadarmo.
Načítava sa diskusia…