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



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

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接受abc的论点,或者有一个**kw包罗万象的论点。请注意,如果所有函数定义的都是*args位置参数 catchall,则**params不起作用

使用 Python 内置apply

apply(order_by, params)

最新更新