想象一下下面的类:
class ThisObj:
def __init__(self, kleur, voedsel, isCool, omschrijving):
self.kleur = kleur
self.voedsel = voedsel
self.isCool = isCool
self.omschrijving = omschrijving
我正在创建该类的两个实例:
obj1 = ThisObj(12, "graan", False, "Cooleman")
obj2 = ThisObj(13, "water", True, "Gekkeman")
我将这两个实例都放入了词典:
dict = {"AAT_FAN_CORR_VSPD_STEP_MPV": obj1,
"C_AIM_ct_DPF-DeltaP_X": obj2}
对于第二本词典,我也会这样做:
obj3 = ThisObj(12, "graan", False, "Watermeloen")
obj4 = ThisObj(14, "ranja", True, "Gekkeman")
dict2 = {"AAT_FAN_CORR_VSPD_STEP_MPV": obj3,
"C_AIM_ct_DPF-DeltaP_X": obj4}
两本词典都填好后,我想比较一下。但没有“voedsel”属性。比较它们应该如下所示:
del dict["voedsel"]
items = dict ^ dict2
这会在删除时引发一个键错误
KeyError: 'voedsel'
所以我的问题是:在不考虑值的一个属性的情况下,如何比较这两个字典。在对象进入字典之前不可能修改它们,这是因为在实际情况中,我是从另一个脚本获取字典的,我不允许更改它
要在忽略其中一个属性的情况下比较两个对象,可以为比较定义
__eq__
:然后:
如果这是一次性比较,而不是对象的定义特征,则仍然可以手动比较属性:
相关问题 更多 >
编程相关推荐