Vai al contenuto principale
🔒 Modalità anteprima. Le prime quindici lezioni di Foundations sono gratuite; questa è Pro. Avvia un trial di 7 giorni per sbloccare l'editor, i suggerimenti AI e il resto del programma. Carta richiesta, disdici in qualsiasi momento dalla Dashboard.Avvia trial di 7 giorni →
← CorsiSenior Deep-DivesModule 11 · Decorator patterns at scalefunctools.singledispatchmethod — type dispatch when there's a self in the waypredict153 / 161
+150 XP
Compito
📝 **Compito:** Prevedere l'output su 5 righe. Una classe "Formatter" ha un metodo "format" inviato dal tipo di argomento SECOND (il metodo singledispatch gestisce il self-skip). Gli input di test riguardano int / list / dict / unmatched float (va al valore predefinito) / bool (che eredita da int → indirizza al gestore int, lo stesso trucco di sr-116). 📋 Implementa la funzione sopra. I test vengono eseguiti automaticamente. 💡 **Suggerimento:** Rileggi la teoria se rimani bloccato.
Predici output

Leggi il codice attentamente

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

Cosa stamperà il programma? Scrivi qui:

💬 Discussione

Sii il primo a fare una domanda o condividere un consiglio.
Accedi per partecipare alla discussione. La lettura è gratuita.
Caricamento discussione…