6
nehme ich das folgende Programm haben:Verwendet __ne__ ein überschriebenes __eq__?
class A(object):
def __eq__(self, other):
return True
a0 = A()
a1 = A()
print a0 != a1
Wenn Sie es mit Python laufen ist der Ausgang True
. Meine Frage ist
- die
__ne__
Methode ist nicht implementiert, fällt Python auf einen Standard? - Wenn Python auf eine Standardmethode fällt, um festzustellen, ob zwei Objekte gleich sind oder nicht, sollte es nicht
__eq__
aufrufen und dann das Ergebnis negieren?
Wenn also '' __ne__'' nicht implementiert ist, sollte Python keine Ausnahme auslösen, wenn ich ''! = '' Verwende, um zwei Objekte zu vergleichen? – dorafmon
@dorafmon: nein, weil die Standardimplementierung '__eq__' nicht anspricht, gibt es einfach 'self is not other' zurück. –