在我的代码中,有很多地方我会将一个函数及其参数传递给另一个函数。为了调试目的,我想要打印出函数的名称和参数列表。例如:
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)
。我的问题是如何打印kwargs。我无法想出一个类似的解决方案,使用动态格式化字符串将其打印为用","分隔的对序列。
任何建议都将不胜感激。
print('Inside a_function_where_you_want_to_print_args')
替换了pass
,但它没有被打印出来) - Giampaolo Ferradinireturn wrapper
之前调用my_func(*arg, **kwargs)
即可。再次感叹,这是一个非常优美的解决方案。 - Giampaolo Ferradini