一种方法是使参数可选:def foo(arg1=None,arg2=None,arg3=None...)
可以这样称呼:foo(arg1=1,arg3=2)
或者像这样:a = {'arg1':1, 'arg3':2}
foo(**a)
如果参数列表失去控制,您可以简单地使用^{}让函数接受可选数量的(命名的)关键字参数:def foo(**kwargs):
print kwargs
params = {'arg1':1, 'arg2':2}
foo(**params) # Version 1
foo(arg1=3,arg2=4) # Version 2
输出:{'arg1': 1, 'arg2': 2}
{'arg1': 3, 'arg2': 4}Note: You can use one asterisk (*) for an arbitrary number of arguments that will be wrapped up in a tuple.