如何在Python 2中一次设置多个函数关键字?

时间:2016-10-18 21:27:56

标签: python arguments parameter-passing kwargs function-call

所有

我想知道是否可以在函数调用中一次设置多个关键字(通过列表?)。

例如,如果你这样做:

foo, bar = 1, 2
print(foo, bar)

输出为(1,2)

对于功能

def printer(foo, bar)
    print(foo,bar)

是否可以执行以下操作:

printer([foo, bar] = [1,2])

哪个关键字都是用列表设置的?

特别是,我问的原因是因为我有一个返回两个变量的函数scaleoffset

def scaleOffset(...):
    'stuff happens here

    return [scale, offset]

我想将这两个变量传递给另一个接受它们作为关键字的函数,可能是一个嵌套调用。

def secondFunction(scale=None, offset=None):
    'more stuff

到目前为止,我还没有找到像这样打电话的方式:

secondFunction([scale,offset] = scaleOffset())

1 个答案:

答案 0 :(得分:3)

将args作为列表传递

arg_list = ["foo", "bar"]
my_func(*arg_list)

要传递kwargs,请使用字典

kwarg_dict = {"keyword": "value"}    
my_func(**kwarg_dict)