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-DivesModulul 2 · CPython Interne și performanțăfunctools.singledispatch — tip-dispatchpredict20 / 161
+100 XP
Sarcină
📝 **Întrebare:** Preziceți rezultatul exact. \`render\` are handlere înregistrate pentru \`int\`, \`str\`, \`list\`. Două dintre cele cinci apeluri au o întorsătură: (1) \`render(True)\` — \`bool\` nu are un handler, dar este trimis la unul? (2) \`render(3.14)\` — \`float\` nu are deloc handler. 📋 Alegeți răspunsul potrivit. 💡 **Sugestie:** Recitiți teoria de mai sus dacă nu sunteți sigur.
Prezice ieșirea

Citește codul cu atenție

from functools import singledispatch


@singledispatch
def render(x):
    return "object:default"


@render.register
def _(x: int):
    return f"int:{x}"


@render.register
def _(x: str):
    return f"str:{x}"


@render.register
def _(x: list):
    return f"list[{len(x)}]"


print(render(42))
print(render("hi"))
print(render([1, 2, 3]))
print(render(True))
print(render(3.14))

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…