我正在编写一个将在多个表单上运行的测试。我创建了一个批处理文件,它将发送一个包含表单名称的参数(因此从技术上讲,测试每个批处理文件只运行一次)。我有一个字典用于每个测试,我想在其中匹配参数的输入。所以,让我们说:
import sys
form1 = {
a = 3,
b = 4
}
form2 = {
a = 7,
b = 8
}
args = sys.argv[1] #this would be the form input as a string; example: "form1"
我想让它知道" form1"与字典form1匹配。显然,我可以做类似的事情:
if args == "form1":
form = form1
elif args == "form2":
form = form2
...
然而,通过27次测试,我宁愿不必处理。有没有更好的方法呢?有点像:
form = matchvar(args)
runtest(form)
感谢。
答案 0 :(得分:2)
我敢建议使用字典词典吗?
formdict = { "form1": form1, "form2": form2 }
然后,您可以使用formdict.get(args,[])
访问正确的词典。
>>> formdict["form1"]["a"]
3
>>> formdict["form2"]["a"]
7
答案 1 :(得分:1)
使用包含表单创建字典,然后使用从命令行获取的值查找键:
forms = dict()
forms['form1'] = {a:3, b:4}
forms['form2'] = {a:7, b:8}
form = forms.get(args)
if form:
runtest(form)
else:
print('Invalid form: {}'.format(args))