在变量中使用字典作为函数的一组参数

Use dictionary in a variable as a set of arguments to a function

我需要一个简单的方法来仅将必需的参数传递给接受多个参数的函数。

def sample1(arg1=0,arg2=0,arg3=0 ... ...  argn=0)

参数字典

argument_dictionary={'arg1':0,'arg4':1}

我想遍历 argument_dictionary 并仅将 arg1 和 arg4 传递给 sample1 as

sample1(arg1=0,arg4=1)

这是通过 keyword argument unpacking 完成的,其中 "dictionaries can deliver keyword arguments":

sample1(**argument_dictionary)

演示:

>>> def sample1(arg0=0, arg1=0, arg2=0, arg3=0, arg4=0):
...   print(locals())
... 
>>> argument_dictionary = {'arg0': 1, 'arg4': 4}
>>> sample1(**argument_dictionary)
{'arg0': 1, 'arg1': 0, 'arg2': 0, 'arg3': 0, 'arg4': 4}

我有点不确定这是否正是您的意思,但您可以在函数调用中执行 **argument_dictionary 以满足您的需要。它会为你展开 k, v 对。

只需传递一个参数哈希。在您的子函数中,遍历哈希。

def sample1(argument_dictionary) :
  for(key, value) in argument_dictionary.items():
    ...

调用示例:

sample({'arg1': 0, 'arg4': 1})
sample({'arg1': 0})

argument_dictionary = {'arg1': 0, 'arg4': 1}
sample(argument_dictionary)