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-DivesModule 11 · Decorator patterns at scaleDecorator stacking — TOP wraps last, runs firstpredict151 / 161
+150 XP
Úloha
📝 **Úloha:** Predpovedajte 8-riadkový výstup. Tri dekorátory `@trace(...)` sa nahromadia na `work()`. Každý obal vytlačí `>{name}` pri vstupe a `<{name}` pri výstupe. Sledujte poradie volania: najvzdialenejší vstúpi ako prvý, najvnútornejší spustí skutočnú funkciu, najvnútornejší odíde ako prvý, krajný vystúpi ako posledný. 📋 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

from functools import wraps


def trace(name: str):
    def decorator(fn):
        @wraps(fn)
        def wrapper(*args, **kwargs):
            print(f">{name}")
            result = fn(*args, **kwargs)
            print(f"<{name}")
            return result
        return wrapper
    return decorator


@trace("outer")
@trace("middle")
@trace("inner")
def work() -> str:
    print("work")
    return "ok"


result = work()
print(f"result: {result}")

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