Задача на Python

Выполнен
Заказ
4966781
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
9 Окт 2022 в 15:00
Цена
500 ₽
Блокировка
10 дней
Размещен
7 Окт 2022 в 19:51
Просмотров
234
Описание работы

Напишите декоратор @takes, который будет проверять правильность типов входных аргументов функции, которая принимает лишь позиционные аргументы.

Декоратор принимает на вход типы аргументов и декорирует функцию таким образом, что если хотя бы один из аргументов имеет неверный тип, то декорированная функция не исполняется и выводится сообщение "ERROR!".

Если количество аргументов функции и количество переданных типов разное:

  • аргументов больше, чем типов - ошибку генерировать не нужно (возможно, точные типы данных известны только для первых аргументов, их как раз и надо проверить)
  • типов больше, чем аргументов - ошибка, если переданные аргументы не подходят под соответствующие им по порядку типы (декоратор может быть применен к функциям с переменным числом аргументов).

Декоратор должен вести себя порядочно, то есть не должен затирать основные аргументы функции (__name__, __doc__, __module__).

Примечание: условие про "лишь позиционные аргументы" добавлено для простоты, если хотите - попробуйте реализовать декоратор @takes и для аргументов с ключевыми словами.

@takes(int, str)

def f(a, b):

    print(a, b)


f(1, '1')  # Должно вывести 1 1

f(1, 1)  # Должно вывести ERROR

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Время выполнения заказа:
1 день 21 час 20 минут
Выполнен
Отзыв о выполненном заказе
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир