假设我有一个定义如下的函数。
def func(param1, param2, param3, param4, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我想要实现的是获取一个 json 对象,如下所示
{
"param1":param1,
"param2":param2,
"param3": param3,
"param4": param4,
"args":args,
"kwargs":kwargs
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以在函数中手动编写这个 json 对象,但只是想知道是否有任何快速方法可以以编程方式执行此操作,而不必担心更改参数名称、添加/删除参数等。
我还试图避免仅仅使用*argsand ,**kwargs因为我仍然想保持使用位置参数的不言自明的好处。
使用locals()可能是一种选择:
def func(param1, param2, param3, param4, *args, **kwargs):
return dict(locals())
Run Code Online (Sandbox Code Playgroud)
演示:
In [6]: func(1,2,3,4,5,6,foo='yes')
Out[6]:
{'param1': 1,
'param2': 2,
'param3': 3,
'param4': 4,
'args': (5, 6),
'kwargs': {'foo': 'yes'}}
Run Code Online (Sandbox Code Playgroud)