2017-09-05 2 views
1

Gibt es in Python eine Möglichkeit, die Unterschiede zwischen zwei Objekten desselben Typs oder zwischen zwei Objekten eines beliebigen Typs zu finden? Mit Differenzen meine ich, dass der Wert einer ihrer Eigenschaften unterschiedlich ist, oder ein Objekt eine Eigenschaft hat, die die andere nicht hat. So zum Beispiel:Unterschiede zwischen zwei Python-Objekten finden

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

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

In diesem Beispiel möchte ich wissen mag, dass die sound Eigenschaft ist anders, und die attitude Eigenschaft ist nur in cat.

Der Anwendungsfall dafür ist, ich versuche, einige Standardverhalten in einer Bibliothek zu überschreiben, und ich bin ein anderes Objekt als die Bibliothek einrichten, aber ich weiß nicht was.

+0

[deepdiff] (https://pypi.python.org/pypi/deepdiff) –

Antwort

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

Ergebnis:

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

Für Set ähnliche Objekte, ^ ist die symmetrische Differenz.

Verwandte Themen