【发布时间】:2019-04-29 15:46:00
【问题描述】:
在我的代码中,将参数提供的值传递给定义的函数似乎是不可能的。我做错了什么?
def setParams(params):
retList=[]
for param in params:
retList.append(dict(actualParameterName=param,value=params[param]))
return dict(parameters=dict(actualParameter=retList))
def runProcedure(procedure, project, invalidlyValidArguments):
print(cmdr.httpPost(cmdr.makeEnvelope(
cmdr.createRequest('runProcedure',
dict(procedureName=procedure,
projectName=project,
setParams(params=invalidlyValidArguments)
)))))
#Intended_Purpose=runProcedure(procedure='Build_Single_Module_For_Every_Config',project='My-module',validInvalidArgs={'moduleSelection':'Some_Handler','hakuna':'mattata'})
我希望这可以清楚地评估,但是我得到了
File "<ipython-input-34-c27d4a9b1a82>", line 19
setParams(params=invalidlyValidArguments)
SyntaxError: non-keyword arg after keyword arg
即使我将第 19 行设置为 setParams(invalidlyValidArguments),也会产生相同的错误。
【问题讨论】:
-
使您的代码更具可读性,问题会自行解决。
-
dict(procedureName=procedure, projectName=project, setParams(params=invalidlyValidArguments)dict 构造函数中的最后一个参数缺少一个键 -
问题出在您对
dict的调用中。第三项没有键名。
标签: python python-2.7 arguments