В моем коде у меня есть много мест, где я передаю функцию и ее аргументы другой функции. В целях отладки я хочу напечатать имя функции и список аргументов. Например
def process(f, *args, **kwargs):
print("processing " + print_func(f, args, kwargs))
Ожидаемый результат для
process(myfunc, 1,2, a="A",b=0)
должно быть "processing myfunc(1,2,a="A", b=0)"
Я добился некоторого прогресса в печати args
следующим образом:
def print_func(f, *args, **kwarg):
func_str = f.__name__ + "("
if len(args) > 0:
func_str = func_str + (', '.join(['%.2f']*len(x)) % args)
func_str = func_str + ")"
, который в приведенном выше примере выдаст результат processing myfunc(1,2)
У меня проблема в том, как напечатать кварги. Я не могу найти аналогичное решение, используя строку динамического форматирования для печати в виде последовательности k=v
пар, разделенных ",".
Любое предложение будет оценено.