Python 代码比较两个对象属性差异 - 返回不同属性集合
以下是一个比较两个对象各属性值是否相同,返回属性值不同的属性集合的示例代码:
def compare_objects(obj1, obj2):
'Compare two objects and return a set of properties that have different values.'
diff_props = set()
for prop in obj1.__dict__:
if hasattr(obj2, prop):
val1 = obj1.__dict__[prop]
val2 = obj2.__dict__[prop]
if val1 != val2:
diff_props.add(prop)
else:
diff_props.add(prop)
return diff_props
这个函数接受两个对象 obj1 和 obj2 作为参数,然后遍历 obj1 的所有属性,检查它们是否存在于 obj2 中,并比较它们的值是否相同。如果值不同,则将属性添加到 diff_props 集合中。最后,函数返回 diff_props 集合,其中包含不同值的属性集合。
请注意,这个函数假定两个对象具有相同的属性集合,并且每个属性都是可比较的(即不是函数或对象)。如果两个对象的属性集合不同,函数可能会引发 AttributeError 异常。
原文地址: https://www.cveoy.top/t/topic/n8aa 著作权归作者所有。请勿转载和采集!