How to convert all arguments to dictionary in python
我想我的函数
1 | func(arg1, arg2, arg3=value3, arg4=value4) |
应该返回一个这样的字典:
1 | {'arg1': value1, 'arg2': value2, 'arg3': value3, 'arg4': value4 } |
您可以使用
1 2 3 4 5 6 | def func(arg1, arg2, arg3=3, arg4=4): print(locals()) func(1, 2) # {'arg3': 3, 'arg4': 4, 'arg1': 1, 'arg2': 2} |
但是,如果您只使用
1 2 3 4 5 6 | def func(*args, **kwargs): print(locals()) func(1, 2, a=3, b=4) # {'args': (1, 2), 'kwargs': {'a': 3, 'b': 4}} |
如果您不能像其他答案那样使用
1 2 3 | def func(*args, **kwargs): all_args = {("arg" + str(idx + 1)): arg for idx,arg in enumerate(args)} all_args.update(kwargs) |
这将创建一个包含所有参数的字典,并带有名称。
您正在寻找
1 2 3 4 | def foo(arg1, arg2, arg3='foo', arg4=1): return locals() {'arg1': 1, 'arg2': 2, 'arg3': 'foo', 'arg4': 1} |
输出:
1 | {'arg1': 1, 'arg2': 2, 'arg3': 'foo', 'arg4': 1} |