找出两个Python对象之间的差异


Python中是否有办法找到相同类型的两个对象之间或任何类型的两个对象之间的差异?根据差异,我的意思是他们的一个属性的值是不同的,或者一个对象具有另一个没有的属性.例如:

dog.kingdom = 'mammal'
dog.sound = 'bark'

cat.kingdom = 'mammal'
cat.sound = 'meow'
cat.attitude = 'bow to me'

在这个例子中,我想知道声音属性是不同的,态度属性只在cat中.

这个用例是我试图覆盖库中的一些默认行为,我正在设置一个与库不同的对象,但我不知道是什么.

最佳答案

print(dog.__dict__.items() ^ cat.__dict__.items())

结果:

{('attitude', 'bow to me'), ('sound', 'meow'), ('sound', 'bark')}

对于类似集合的对象,^是对称差异.

点赞