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 scaleClass-based decorators — when the wrapper needs statepredict152 / 161
+150 XP
Opdracht
📝 **Taak:** Voorspel de uitvoer van 6 regels. Een cursus 'CallCounter' omvat 'begroeten' als decorateur. Elke aanroep verhoogt `self.count`. Na drie aanroepen wordt het telattribuut benaderd vanaf BUITEN - dat is de superkracht van de op klassen gebaseerde decorateur ten opzichte van op sluiting gebaseerd. 📋 Implementeer bovenstaande functie. Tests worden automatisch uitgevoerd. 💡 **Hint:** Herlees de theorie als je vastloopt.
Voorspel uitvoer

Lees de code zorgvuldig

class CallCounter:
    def __init__(self, fn) -> None:
        self.fn = fn
        self.count = 0
        self.__name__ = fn.__name__

    def __call__(self, *args, **kwargs):
        self.count += 1
        return self.fn(*args, **kwargs)


@CallCounter
def greet(name: str) -> str:
    return f"hi {name}"


print(greet("a"))
print(greet("b"))
print(greet("c"))
print(f"calls: {greet.count}")
print(greet.__name__)
print(type(greet).__name__)

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…