gpt4 book ai didi

python - 如何打印 args 和 kwargs 列表

转载 作者:行者123 更新时间:2023-12-05 01:15:11 26 4
gpt4 key购买 nike

在我的代码中,我在很多地方将一个函数及其参数传递给另一个函数。出于调试目的,我想打印函数名称和参数列表。例如

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。我想不出一个类似的解决方案,使用动态格式化字符串将其打印为一系列 k=v 对,由“,”分隔。

如有任何建议,我们将不胜感激。

最佳答案

要格式化 argskwargs,您可以简单地遍历它们并创建您的字符串表示形式

def process(my_func, *args, **kwargs):

#Iterate over all args, convert them to str, and join them
args_str = ','.join(map(str,args))

#Iterater over all kwargs, convert them into k=v and join them
kwargs_str = ','.join('{}={}'.format(k,v) for k,v in kwargs.items())

#Or using f-strings
#kwargs_str = ','.join(f'{k}={v}' for k,v in kwargs.items()

#Form the final representation by adding func name
return "processing {}({})".format(my_func.__name__, ','.join([args_str,kwargs_str]))

#Or using f-strings
#return f"processing {my_func.__name__}({','.join([args_str,kwargs_str])})"

print(process(my_func, 1,2, a="A",b=0))

输出将是

processing my_func(1,2,a=A,b=0)

关于python - 如何打印 args 和 kwargs 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56750774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com