Написать класс-параметрический декоратор DefaultsTo(объект), которому передаётся ровно один параметр. Этот параметр будет передаваться в декорируемую функцию вместо всякого позиционного параметра, для которого не предусмотрено умолчание. Подгонять под это свойство сигнатуру функции не надо.
Я использовал functools.wraps и, разумеется, разбор сигнатуры
None/None/3/10 1/None/3/10 1/2/3/10 1/2/5/10 1/2/5/7
Если вы немного застряли — (нажмите «Комментарии» в шапке страницы, чтобы прочитать спойлер)
