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

时间:2017-09-05 20:58:22

标签: python python-3.x

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

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

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

在此示例中,我想知道sound属性不同,attitude属性仅在cat中。

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

1 个答案:

答案 0 :(得分:7)

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

结果:

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

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