@Ashwini Chaudhary有一个非常Python的方式来解决您的问题。但是,它需要更改foo
功能的签名。
如果您不想更改函数签名,则可以使用自省功能来找出函数期望的参数:
arg_count = foo.func_code.co_argcount
args = foo.func_code.co_varnames[:arg_count]
args_dict = {}
for k, v in d.iteritems():
if k in args:
args_dict[k] = v
foo(**args_dict)