Перейти к основному содержимому
🔒 Режим превью. Первые 15 уроков 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))

Что выведет программа? Напиши здесь:

💬 Обсуждение

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