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 11 · Decorator patterns at scaleDecorator stacking — TOP wraps last, runs firstpredict151 / 161
+150 XP
Opdracht
📝 **Taak:** Voorspel de uitvoer van 8 regels. Drie `@trace(...)` decorateurs stapelen zich op `work()`. Elke wrapper print `>{naam}` bij binnenkomst en `<{naam}` bij afsluiten. Traceer de aanroepvolgorde: de buitenste komt als eerste binnen, de binnenste voert de echte functie uit, de binnenste uitgangen als eerste, de buitenste uitgangen als laatste. 📋 Implementeer bovenstaande functie. Tests worden automatisch uitgevoerd. 💡 **Hint:** Herlees de theorie als je vastloopt.
Voorspel uitvoer

Lees de code zorgvuldig

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}")

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…