将项目字典作为单个参数传递给方法

时间:2012-11-02 16:27:46

标签: python python-2.7

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

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

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

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

等同于

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

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

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

order_by(*params)

请参阅calls syntax specification

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

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

其中somemethod接受abc个参数,或者有**kw catch-all参数。请注意,如果您的所有函数定义的是**params位置参数catch-all,则*args 可以正常工作。

答案 1 :(得分:-3)

使用内置的apply

apply(order_by, params)