0

我有一个看起来像这样的方法:

def order_by(*args):
    print list(args)

有没有办法可以传递三个项目的列表,并将列表中的每个项目作为单独的参数传递?

params = ['a', 'b', 'c']

相当于

order_by('a', 'b', 'c')

有任何想法吗?

4

2 回答 2

4

*arguments语法也可用于调用函数,只要params是可迭代的:

order_by(*params)

请参阅调用语法规范

对于实际字典,请使用以下**kwargs语法:

params = dict(a='a', b='b', c='c')
somemethod(**params)

wheresomemethod接受a,bcarguments 或有一个**kw包罗万象的论点。请注意,如果您的所有函数定义都是位置参数包罗万象,这**params不起作用。*args

于 2012-11-02T16:29:18.757 回答
-3

使用 Python 内置apply

apply(order_by, params)
于 2012-11-02T16:49:23.930 回答