Код Middle Декораторы обновлено

Декоратор проверки типов аргументов

Условие

Напишите параметризованный декоратор accepts(*types): перед вызовом проверяет, что i-й позиционный аргумент является экземпляром types[i] (bool не считается int), иначе бросает TypeError. Проверка run(args) вызывает функцию area(w, h), задекорированную @accepts(int, int), и возвращает результат или строку "TypeError".

Примеры

run([2, 3]) // 6
run([2, "3"]) // "TypeError"
run([2.5, 3]) // "TypeError"

Как подойти

Подсказки: 2
  1. Фабрика декоратора, декоратор, обёртка.
  2. isinstance(True, int) истинно.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.