我想将字典的某些值转换为多个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
答案 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)
。
注意双星。这意味着获取字典并将其值作为命名参数传递,其中键是名称。单个星形将解压缩列表,将其值按顺序传递为未命名的参数。这些可以合并。
答案 1 :(得分:0)
使用**
传递或接受字典参数。以下代码
d={'foo': 'bar','test': 123}
def my_method(**kwargs):
print kwargs
my_method(**d)
会打印d
,{'foo': 'bar','test': 123}
*args
的比较。