现在有两个字典,想要根据id匹配。但这不是目的,我想尝试的是类中方法的自调用和局部,全局变量的用法。
#coding : utf-8
class MatchCase(object):
def __init__(self, case_1, case_2): # 定义类的属性参数
self.case_1 = case_1
self.case_2 = case_2
def getcaseid(self, case): # 这个方法是获取id的一种方法,注意前面一定要加self,再加局部变量
keys = tuple(case.keys())
dic = {}
for i in range(len(keys)):
dic[i] = case[keys[i]]['caseid']
id = list(dic.values())
return id
def match(self):
caseid_1 = self.getcaseid(self.case_1) # 引用类中方法要加self,和变量一样
caseid_2 = self.getcaseid(self.case_2)
return list(set(caseid_1) ^ set(caseid_2))
from match import MatchCase
a1 = {"case1": {"caseid": 12, "keyname": "case1", "caseresult": True}, "case2": {"caseid": 13, "keyname": "case1", "caseresult": True}}
a2 = {"case1": {"caseid": 12, "keyname": "case_1", "caseresult": True}, "case2": {"caseid": 13, "keyname": "case_2", "caseresult": True}, "case3": {"caseid": 3, "keyname": "case_3", "caseresult": False}, "case4": {"caseid": 111, "keyname": "case_1", "caseresult": False}, "case5": {"caseid": 19, "keyname": "case_5", "caseresult": False}}
z = MatchCase(a1,a2)
print(z.match())