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 scalefunctools.singledispatchmethod — type dispatch when there's a self in the waypredict153 / 161
+150 XP
Opdracht
📝 **Taak:** Voorspel de uitvoer van 5 regels. Een `Formatter`-klasse heeft een `format`-methode die wordt verzonden door het type van het SECOND-argument (singledispatchmethod handelt de self-skip af). Testinvoer omvat int / list / dict / unmatched float (wordt teruggezet naar standaard) / bool (dat overerft van int → routes naar int handler, dezelfde gotcha als sr-116). 📋 Implementeer bovenstaande functie. Tests worden automatisch uitgevoerd. 💡 **Hint:** Herlees de theorie als je vastloopt.
Voorspel uitvoer

Lees de code zorgvuldig

from functools import singledispatchmethod


class Formatter:
    @singledispatchmethod
    def format(self, value: object) -> str:
        return f"unknown: {value!r}"

    @format.register
    def _(self, value: int) -> str:
        return f"int: {value}"

    @format.register
    def _(self, value: list) -> str:
        return f"list of {len(value)}"

    @format.register
    def _(self, value: dict) -> str:
        return f"dict with {len(value)} keys"


f = Formatter()
print(f.format(42))
print(f.format([1, 2, 3]))
print(f.format({"a": 1, "b": 2}))
print(f.format(3.14))
print(f.format(True))

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…