Sari la conținutul principal
🔒 Mod previzualizare. Primele cincisprezece lecții Foundations sunt gratuite; aceasta este Pro. Pornește un trial de 7 zile pentru a debloca editorul, sugestiile AI și restul programului. Card necesar, anulează oricând în Dashboard.Pornește trial de 7 zile →
← CursuriSenior Deep-DivesModule 11 · Decorator patterns at scalefunctools.singledispatchmethod — type dispatch when there's a self in the waypredict153 / 161
+150 XP
Sarcină
📝 **Sarcina:** Preziceți ieșirea cu 5 linii. O clasă `Formatter` are o metodă `format` trimisă de tipul argumentului SECOND (metoda singledispatch se ocupă de auto-sărire). Intrările de testare acoperă int / list / dict / unmatched float (cade la implicit) / bool (care moștenește de la int → rute la manipulatorul int, același lucru ca sr-116). 📋 Implementați funcția de mai sus. Testele rulează automat. 💡 **Sugestie:** Recitiți teoria dacă rămâneți blocat.
Prezice ieșirea

Citește codul cu atenție

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

Ce va afișa programul? Scrie aici:

💬 Discuție

Fii primul — pune o întrebare sau împărtășește un sfat.
Conectează-te pentru a te alătura discuției. Citirea este gratuită.
Se încarcă discuția…