如何在python中将所有参数转换为字典

Nik*_*vić 0 python dictionary args kwargs python-2.7

我想我的函数func(*args, **kwargs)返回一个字典,其中包含我给它的所有参数.例如:

func(arg1, arg2, arg3=value3, arg4=value4)
Run Code Online (Sandbox Code Playgroud)

应该返回一个这样的字典:

{'arg1': value1, 'arg2': value2, 'arg3': value3, 'arg4': value4 }
Run Code Online (Sandbox Code Playgroud)

Dee*_*ace 9

你可以使用locals()vars():

def func(arg1, arg2, arg3=3, arg4=4):
    print(locals())

func(1, 2)

# {'arg3': 3, 'arg4': 4, 'arg1': 1, 'arg2': 2}
Run Code Online (Sandbox Code Playgroud)

但是,如果您只使用*args,则无法使用locals()以下方法区分它们:

def func(*args, **kwargs):
    print(locals())

func(1, 2, a=3, b=4)

# {'args': (1, 2), 'kwargs': {'a': 3, 'b': 4}}
Run Code Online (Sandbox Code Playgroud)