I would like to my function func(*args, **kwargs)
return one dictionary which contains all arguments I gave to it. For example:
func(arg1, arg2, arg3=value3, arg4=value4)
should return one dictionary like this:
{'arg1': value1, 'arg2': value2, 'arg3': value3, 'arg4': value4 }
You can use locals()
or vars()
:
def func(arg1, arg2, arg3=3, arg4=4):
print(locals())
func(1, 2)
# {'arg3': 3, 'arg4': 4, 'arg1': 1, 'arg2': 2}
However if you only use *args
you will not be able to differentiate them using locals()
:
def func(*args, **kwargs):
print(locals())
func(1, 2, a=3, b=4)
# {'args': (1, 2), 'kwargs': {'a': 3, 'b': 4}}