我希望我的函数 func(*args, **kwargs)
返回一个字典,其中包含我提供给它的所有参数。例如:
func(arg1, arg2, arg3=value3, arg4=value4)
应该返回一本这样的字典:
{'arg1': value1, 'arg2': value2, 'arg3': value3, 'arg4': value4 }
最佳答案
您可以使用locals()
或vars()
:
def func(arg1, arg2, arg3=3, arg4=4):
print(locals())
func(1, 2)
# {'arg3': 3, 'arg4': 4, 'arg1': 1, 'arg2': 2}
但是,如果您只使用 *args
,您将无法使用 locals()
区分它们:
def func(*args, **kwargs):
print(locals())
func(1, 2, a=3, b=4)
# {'args': (1, 2), 'kwargs': {'a': 3, 'b': 4}}
关于python - 如何在python中将所有参数转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44412617/