>我有一个看起来像这样的方法:
def order_by(*args):
print list(args)
有没有办法传递三个项目的列表,并将列表中的每个项目作为单独的参数传递?
params = ['a', 'b', 'c']
将等同于
order_by('a', 'b', 'c')
有什么想法吗?
*arguments
语法也可用于调用函数,前提是params
是可迭代的:
order_by(*params)
请参阅调用语法规范。
对于实际字典,请使用**kwargs
语法:
params = dict(a='a', b='b', c='c')
somemethod(**params)
somemethod
接受a
、b
和c
的论点,或者有一个**kw
包罗万象的论点。请注意,如果所有函数定义的都是*args
位置参数 catchall,则**params
不起作用。
使用 Python 内置apply
:
apply(order_by, params)