Es gibt eine magische Methode namens __ne__
in Python, die auf Objekte !=
Vergleich ausgelöst wird.Python 2.7 Was verglichen wird, wenn __ne__ nicht definiert ist
Beispiel:
class A(object):
def __init__(self, a):
self.a = a
def __ne__(self, other):
return self.a != other.a
A(3) != A(3) # produces False
A(3) != A(2) # produces True
Die Frage:
Was passiert, wenn __ne__
unter der Haube passiert, ist nicht definiert?
Hinweis: In Python 3.x !=
Vergleich definiert wird, gleich welcher __eq__
kehrt umkehren werden.
Ich dachte, dass Objekt-IDs verglichen werden, in diesem Fall unter der Annahme, dass wir kein Singleton haben, müssten alle !=
Vergleiche True
zurückgeben. Aber anscheinend hat der gleiche Code in verschiedenen Umgebungen unterschiedliche Ergebnisse produziert, also denke ich, es gibt etwas anderes, das anstelle von Objekt-IDs verglichen wird.
Woher haben Sie es genommen? Haben Sie einen Link zur C-Implementierung dieser Funktionalität? – vovaminiof
@vovaminiof bearbeitet. – turkus