Напишите декоратор @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.52 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |