Към основното съдържание
🔒 Режим за преглед. Първите петнадесет урока на Foundations са безплатни; този е Pro. Стартирайте 7-дневен trial, за да отключите редактора, AI подсказките и останалата част от курса. Изисква се карта, отменете по всяко време в Dashboard.Стартирай 7-дневен trial →
← КурсовеSenior Deep-DivesМодул 2 · Вътрешни елементи и производителност на CPythonfunctools.singledispatch — тип-изпращанеpredict20 / 161
+100 XP
Задача
📝 **Въпрос:** Предскажете точния резултат. \`render\` има регистрирани манипулатори за \`int\`, \`str\`, \`list\`. Две от петте извиквания имат обрат: (1) \`render(True)\` — \`bool\` няма манипулатор, но изпраща ли се до такъв? (2) \`render(3.14)\` — \`float\` изобщо няма манипулатор. 📋 Изберете правилния отговор. 💡 **Съвет:** Прочетете отново теорията по-горе, ако не сте сигурни.
Предскажи изхода

Прочети кода внимателно

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

Какво ще изведе програмата? Напиши тук:

💬 Дискусия

Бъди първи — задай въпрос или сподели съвет.
Влез за да се присъединиш към дискусията. Четенето е безплатно.
Зареждане на дискусията…