Python конвертирует args в kwargs

Я пишу декоратор, который должен вызывать другие функции перед вызовом функции, которую он декорирует. Декорированная функция может иметь позиционные аргументы, но функции, которые вызовет декоратор, могут принимать только ключевые аргументы. У кого-нибудь есть удобный способ преобразования позиционных аргументов в аргументы с ключевыми словами?

Я знаю, что могу получить список имен переменных оформленной функции:

>>> def a(one, two=2):
...    pass

>>> a.func_code.co_varnames
('one', 'two')

Но я не могу понять, как сказать, что было передано позиционно, а что было ключевым словом.

Мой декоратор выглядит так:

class mydec(object):
    def __init__(self, f, *args, **kwargs):
        self.f = f

    def __call__(self, *args, **kwargs):
        hozer(**kwargs)
        self.f(*args, **kwargs)

Есть ли другой способ, кроме простого сравнения kwargs и co_varnames, добавления к kwargs чего-либо, чего нет, и надежды на лучшее?

Ответы на вопрос(4)

Ваш ответ на вопрос