Python构建多个arg参数

时间:2016-02-15 06:00:11

标签: python

我想将字典的某些值转换为多个args并将其传递给方法。 dict的关键字必须是传递给方法的变量的名称。

例如:

myDict={'one':1,'two':2,'three':3,'four':4}

#call myMethod as
myMethod(one=1,two=2)

def myMeth(self,*args):
     do somthing with args

2 个答案:

答案 0 :(得分:1)

您可以使用解包符号。如果您有这样的方法

def function(arg1,arg2,arg3):
    # do something

和字典dct = {'arg1':3,'arg2':3,'arg3':6},您可以像

一样调用函数
function(**dct)

相当于做function(arg1=3,arg2=3,arg3=6)

注意双星。这意味着获取字典并将其值作为命名参数传递,其中键是名称。单个星形将解压缩列表,将其值按顺序传递为未命名的参数。这些可以合并。

有关更多详细信息,请参阅python文档的4.7.4部分。 Here是另一篇讨论这些内容的文章。

答案 1 :(得分:0)

使用**传递或接受字典参数。以下代码

d={'foo': 'bar','test': 123}

def my_method(**kwargs):
    print kwargs

my_method(**d)

会打印d{'foo': 'bar','test': 123}

的内容 编辑:@Matthew的回答很好地总结了*args的比较。