Hallo Mathias,
*
[1, 2, 3] == [1, 2, 3]
Was würde Python bei einem Vergleich zweier komplexerer Objekte machen, also wie in JavaScript das besagte window == window?
Kommt darauf an[tm].
Wenn die Klasse spezielle Methoden (__eq__, __cmp__) implementiert, dann werden diese Methoden aufgerufen, um Vergleiche durchzuführen. Wenn nicht, dann wird nur geprüft, ob die Variablen Referenzen auf das gleiche Objekt sind.
Beispiel:
Klasse mit Vergleichsfunktion:
class Bar:
def __init__ (self, a):
self.a = a
def __eq__ (self, other):
return self.a == other.a
Klasse ohne Vergleichsfunktion:
class Foo:
def __init__ (self, a):
self.a = a
Ausgabe (Beispiel):
t1 = Foo (1)
t2 = t1
t3 = Foo (1)
t1 == t2
True
t1 == t3
False
s1 = Bar(1)
s2 = s1
s3 = Bar(1)
s1 == s2
True
s1 == s3
True
Viele Grüße,
Christian