3 votes

Trouver les différences entre deux objets Python

Existe-t-il un moyen en Python de trouver les différences entre deux objets du même type, ou entre deux objets de n'importe quel type ? Par différences, j'entends que la valeur d'une de leurs propriétés est différente, ou qu'un objet possède une propriété que l'autre n'a pas. Par exemple :

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

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

Dans cet exemple, je voudrais savoir que le sound est différente, et la propriété attitude n'existe qu'en cat .

Le cas d'utilisation est le suivant : j'essaie de remplacer un comportement par défaut dans une bibliothèque, et je configure un objet différent de celui de la bibliothèque, mais je ne sais pas quoi.

7voto

Alex Hall Points 20790
print(dog.__dict__.items() ^ cat.__dict__.items())

Résultat :

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

Pour les objets de type ensemble, ^ est la différence symétrique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X