Написать параметрический декоратор cast(тип), который пытается преобразовать результат декорируемой функции к заданному типу. Исключения проверять не надо, но надо пользоваться @wraps.
@cast(int) def fun(a, b): return a * 2 + b print(fun(12, 34) * 2) print(fun("12", "34") * 2) print(fun(12.765, 34.654) * 2)
116 242468 120